/Hola-Aloha-app

ROR Two-sided marketplace assignment

Primary LanguageRuby

HOLA! ALOHA! - Marketplace Assignment

*~ by Barbara Rodriguez ~*

Website: HolaAloha! Github: My Github

*Note - This project was part of an assignment given by our educational institute - Coder Academy - which we had a week to complete.

CONTENTS


The Design Process


Mission

  • To design, build, deploy and present a Ruby on Rails Application.
  • Application must be a two-sided marketplace
  • Deliver a 7-minute presentation - PITCH IT!

Idea

Create an app that provides a two-sided marketplace for Language Exchange services.

The name of the application/website will be "Hola! Aloha!".

So..what is it?

It's an application for individuals/businesses who require documents/files translated in an efficient and timely manner whilst, being assured - it's provided by certified professionals.

What does the application offer?

  • Services provided by Interpreters and Translators will by certified by NAATI (National Accreditation Authority for Translators and Interpreters)
  • Easy to use registration/log-in services
  • Ratings based profiles
  • Live notification and messages system to ensure efficient communication between users
  • FAQ page to assist users

Research

Current language exchange services:

*Results based on top 5 sites on Google search - "certified translators melbourne".

Trello Board


Trello Board - Hola! Aloha! Marketplace

Workflow

USER STORIES

My Users consist of two profiles - Customers and Interpreters. Users can sign-up, but will need to create a profile before initializing an order through the application. Customers and Interpreters will be able to communicate via an instant message notification system to ensure speedy response times by both users. Both Customers and Interpreters can send a request for an order; thus eliminating the need to create multiple profiles.

Customers

  • As a customer, I want to get my birth certificate translated so that I can apply for my Australian passport.
  • As a customer, I want to get my name-change document translated, so that I can apply for my student visa.
  • As a customer, I want to get my client's Will document translated, so that I can proceed with insurance claims.
  • As a customer, I want to get my client's bank statement translated, so that I can plan my client's retirement.
  • As an individual, I want to get my name-change document translated, so that I can apply for my student visa.

Interpreters

  • As an Interpreter, I want to choose my own hourly rate, so that I know what my time is worth.
  • As an Interpreter, I want to be able to search clients quickly, so that I can work more efficiently.
  • As an Interpreter, I want to be able to choose my client, so I know where my skills are put at to best.
  • As an Interpreter, I want to be able to expand my services to businesses, so that I can grow my own clientele.

ERD


My ERD consists of using simple and effective models to interact with controllers; this is to avoid clutter within the rails application.

Link to my DB Designer ERD.

ERD

Workflow


I developed a workflow document to provide a visual representation of how my website application will flow through as a new user.

Link to my Flowchart.

Workflow

Models


User
- email :string
- password :string

Profile 
- first_name :string
- last_name :string
- image_data :text
- date_of_birth :date
- house_no :string
- street_name :string
- suburb :string
- state :string
- postcode :string
- country :string

Languages
- en :string

Jobs
- subject: text
- description :text
- file_data :text
- price :integer
- paid_at :datetime
- stripe_charge_id :string
- completed_at :string

Conversations
- sender_id :integer

Messages
- from_id :integer
- body :text
- read :boolean

Review
- comment :varchar
- rating :decimal

Mood Board


Mood Board

Colour Schemes


Colour Schemes

Fonts


Fonts

Wireframes


Link to my Figma Page.

Mobile

Mobile

Desktop

Desktop

Ruby Gems and Api's Used


Gems

  • Rspec (Testing Framework)
  • Dotenv-Rails (Environment Variables)
  • Devise (Authentication)
  • Pundit (Authorization)
  • Stripe (Payments)
  • Shrine (File Attachment)
  • Mailgun (Transactional Emails
  • Faker (Generates fake data)
  • Language Lists (Generates Languages)
  • PG (Postgres)

API's

  • Stripe (Payments)
  • Mailgun (Transactional Emails)

Problems and Solutions


"Where do I start???!!!"

Whymeme

Encounters

During my development process, I encountered numerous problems - anywhere from the design stage to deploying my website Heroku.

In summary, below is a display of problems/errors encountered along the way.

This includes any students/teachers that may have contributed with solving the issue/s at the time.


Type Problem Solved? Contributers?
Models ERD Incorrect relationships & references Yes Ruegen
Faker GEM Unable to create 'fake' users Yes Pete
Pundit GEM Unable to get Pundit to work No
Stripe GEM Issues with 'price' and params Yes Richard & Meng
Shrine GEM Unable to display images Yes Mill
Mailgun GEM Unable to make gem work Yes Meng
Search Bar Unable to search 'jobs' in search field No
Stylesheets Stylesheets not loading properly Yes
Heroku Issues deploying Yes Pete & Meng
MVC Methods and params ~ Meng/Pete/Cameo/Matt
Routing Countless routing issues Yes
Tables N/A N/A Maxi

Improvements


  • Ensure ERD is correct - triple check if Necessary!!
  • Git branch! Git commit! I didn't use it at the start as much as I needed to
  • Collaborate with other students and teachers more to bounce ideas/solve problems
  • Careful with scaffold (could get messy at times)
  • Leave styling to the end

..There's "Always" room for improvement

Final Review


Although difficult and "EXTREMELY" tiresome, this assignment has pushed the boundaries - and in doing so - has given me a great learning experience and beyond what I thought I could achieve in a short amount of time.

ROR has a lot to offer - and I see how it has been used by so many developers.