Overview
Garcon is an Android app where users can request and complete various errands. As a user, you can avoid doing pesky errands (getting food, mowing grass, walking their dog) that you don’t have the time, energy or kids to do. Or, if you have the time, you can complete other people’s request for money.
The user making the request, the requester, would enter the task, when it needs to be done, and how much it’s worth. The request would then be published on the app and displayed for another user, prioritized based on location and money offered. The second user, the errand boy, can pick a task of interest, and negotiate a price before taking the task. After completing the task, the requester would rate the errand boy and complete the transaction.
Feature List
- Tasks
- Task List - RSS Feed Style
- View Task details
- Create Tasks
- Tag Tasks
- Fileter Tasks By...
- Deadline
- Location
- Tag
- Price
- Accept Tasks
- Task Deadlines
- Task Priority determined by a future formula
- Edit previously made tasks
- Message a User
- Rate Users Who You Have Interacted With
- Pay Users
- Task Map
- Drop a pin to create a task
- Drop multiple pins for complex tasks
- Select a pin to view a task
- Administrative
- Log-In
- Make Account
- Edit Settings
- Cashout
- User views PayCheck earned
- Users can "cash out" through Venmo API
An italized item represents an "if-time-permits" feature. All other features are key features
GUI Sketches
The sign-up screen

The log-in screen

Creating a task

Viewing tasks

Viewing then accepting tasks

The task map

The user profile screen - can view the users ratings as both a TaskMaker and a TaskRunner

Architecture
- Service Oriented Architecture
- Android SDK for the client side
- Verification server between database and phone to prevent direct user-DB interations
- MySQL Database for backend
- Jackson JSON Processor for sending between devices and server
- Secure Socket connection between client and server using SSL
- Venmo Api and Android Mobile Payment Library to facilitate payment
Use-Cases
Create a Task
Primary Actor: TaskMaker
Goal: To Create a New Task
1) TaskMaker selects that they would like to create a task
2) They then create a name for the task
3) Enter a description for the task
4) Select a staring time
5) Select a deadline
6) Select a price
7) Select tags which would apply to the task
8) Select location(s) based on chronological order for the task
9) Systems assigns the task a priority
10) The task is created
11) The user can now receive messages from those who want to complete the task
Accept a Task
Primary Actor: TaskRunner
Goal: To accept a new task for future completion
1) TaskRunner views a list of tasks and can sort through them
2) TaskRunner selects a task from the list
3) View the profile of the TaskMaker for the chosen task
4) Send a message to the TaskMaker to negotiate price or general questions
5) Send a request to accept the task
6) The TaskMaker views the TaskRunner's profile and can choose to accept
7) If the TaskMaker accepts, the task is set to the TaskRunner and no one else can accept it
Perform a Task
Primary Actor: TaskRunner
Goal: To complete a previously chosen task
1) Perform the task as instructed in the task description
2) The TaskRunner sends a notification that the task has been completed
3) The TaskMaker accpets that the task was done properly
4) The TaskMaker pays through our application - if they do not, they are banned
5) TaskRunner and TaskMaker rate each other
Rate a TaskRunner
Primary Actor: TaskMaker
Goal: Rate a TaskRunner after a task is completed or runs out of time
1) Give the TaskRunner a 0 to 5 star rating based on their performace
2) Report the TaskRunner if there was a significant issue
Rate a TaskMaker
Primary Actor: TaskRunner
Goal: Rate a TaskMaker after a task is completed or runs out of time
1) Give the TaskMaker a 0 to 5 star rating based on their performace
2) Report the TaskMaker if there was a significant issue
View User Ratings
Primary Actor: User
Goal: View a user's profile
1) TaskRunner selects a task
2) TaskRunner selects the task's TaskMaker
3) TaskRunner now sees the TaskMaker's profile
Create an Account
Primary Actor: User
Goal: To create a Garcon account
1) User selects that they would like to sign up
2) User selects a username and password
3) User logs in to their pre-existing Venmo account to allow Garcon access to it
4) User accepts the terms of use
5) The new account is created
Log-In
Primary Actor: User
Goal: To log-in to a user's account
1) User inputs their username and password
2) If they're username and password are correct, log-in
Domain Model

UML Class Diagram
