Vision Statement
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
- 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
Actors
- User: Anyone who uses the app.
- TaskMaker: The person with an errand to complete. This user posts the task, description, location and price. When the task has been accepted by another user, the two communicate in order to finish the task and facilitate payment. Is a user.
- TaskRunner: The user who completes the task. The taskee browses through a list of available tasks. Once an agreeable task has been found, the taskee communicates with the tasker to complete the task. Is a user.
- Web Server: Stores the data for uncompleted tasks and the ratings for each user as a tasker and taskee.
- Administrator: Maintenance, settle user disputes, general server cleaning and improvements
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
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 with 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
Domain Model

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

Activity Diagram
Create a Task:

Accept a Task:

Architecture
- Service Oriented Architecture
- Android SDK for the client side
Resources
- Android Code Libraries
- External Libraries
- Google Maps API
- Venmo API
- JDBC - “Short for Java Database Connectivity, a Java API that enables Java programs to execute SQL statements. This allows Java programs to interact with any SQL-compliant database.”