Giter Site home page Giter Site logo

cmput301w20t03 / ontime Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 7.0 40.55 MB

This repo contains the source code of a ride-hailing application called OnTime. It is an Android Application made by Java.

License: MIT License

Java 100.00%
payment-service location-services signup signin search autofill-service android-application java

ontime's Introduction

CMPUT301W20T03 PROJECT

ONTIME

Our project is making a handy, neat taxi-hailing app. We want a mobile application that allows drivers to search for open and recent ride requests, and for riders to post requests for rides. Riders will describe the start and end of their ride and their suggested payment. Drivers will browse for nearby requests and accept ride requests that they are willing to fulfil.

Wiki

Go to the wiki of this project

Time Line

Go to the time line of thie project

Requirement

Java, Android Studio.

How to start

Clone this repo in your local machine and open it in the Android Studio. Also, you can use the apk to download this app in your Android Phone.

Table of contents

General info

APP icon

  1. Before login, users should sign up with their user name, email, phone number and password, also clear their identity as a rider or driver.

  2. In rider map client, riders can view their detail informations such as personal profile and current request through the hamburger button on the left top of the screen.

  3. Riders can use the gps button below the hamburger button to find their current locations, and use arrow button to show their drivers current loction if their requests are being accepted.

  4. Entering source address and destination address to show the trip polyline and trip amount for current request. Riders can send the request by clicking confirm button and view the current request and rider's informations.

  5. In driver map client, drivers can view the request list below the map to check all the requests that are waiting for being accepted. Select one of the request, driver can choose accept to view detail informations or cancel to return to the map client. The marker button on the left top side can show driver the polyline of the current trip.

  6. Notice that we use QR code to make the payment! ๐Ÿ‘€

Screenshots

Rate a ride

Request a ride

Demo Videos

Go to the demo videos of this project

Technologies

Setup

Download the apk, enable Internet, authorize location settings, and you're good to go!

Features

List of features ready

  • Riders can request rides
  • Riders can rate drivers
  • Drivers can accept ride requests and get paid
  • Users can scan QR code for payments!

TODOs for future development:

  • Night mode for the app
  • Change the user profile phone
  • Add the email contact

Status

Project is: finished

Inspiration

Project inspired by Uber, Lyft.

Contact

Created by CMPUT301W20T03 - feel free to contact us! See wiki for our contact information! :)

ontime's People

Contributors

lichengxie avatar ling-zi7 avatar shuangchaowang avatar xiangxinyue avatar xudongli-alex avatar yanshan24 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

ontime's Issues

Part2 - Glossary and Information Sources

Rationale:

  1. We need to define any special terminology in the application domain (i.e., not programming terms).
  2. Provide a list of useful informational references or links to related or competitive products.

Estimated size in story points: 4/10

Risk: low; It is important but low risk to provide all the necessary information.

Part3 - [Code] Driver's Map and View

Rationale: a function for drivers to see the locations of all available riders nearby.

Estimated size in story points: 9/10

Risk: High; It is important to show the correct riders near the drivers so that the drivers can pick them up.

Final - UML Revise

Rationale: We need to revise our UML as the progress is moving forward.

Estimated size in story points: 4/10

Risk: Low; It is important for an app to have a more complete UML diagram.

Final - [Test]Unit Test

Rationale: We need to provide unit tests for all the existing classes to make sure everything works properly.
Estimated size in story points: 8/10

Risk: Medium; It is important for an app to have complete test.

US 01.01.01

Rationale: As a rider, I want to request rides between two locations after I log in.

Estimated size in story points: 8/10

Risk: High. it is one of the basic functions of this app.

Part2 - Object-Oriented Analysis

Rationale: provide initial object-oriented analysis using a UML class diagram.

Estimated size in story points: 6/10

Risk: Medium; It is important to do the OOA analysis before we design the app; we may improve it throughout the project.

Product Backlog

Form the initial partial user stories into a backlog of the product's requirements. For each user story, complete its rationale, its estimated size in story points, and risk level (i.e., low, medium, or high).

Part3 - [Code] MainActivity

Rationale: We need to make the main activity up-to-date in order to implement all the basic functions of the app.

Estimated size in story points: 10/10

Risk: High; It is crucial to have the main activity implement correctly; it requires to access the firebase and associate with other activities, etc.

Part3 - [Code] Driver Accept Request

Rationale: a function for drivers to accept the ideal request and change its status to unavailable.

Estimated size in story points: 9/10

Risk: High; It is important for drivers to accept the request and find the riders.

Part3 - [Code] Payment using QR Code

Rationale: Rider can scan the driver's QR code and proceed with the payment.

Estimated size in story points: 9/10

Risk: High; It is a crucial interaction between riders and drivers in this app.

Part3 - [Code] Driver's nearby requests

Rationale: a function that the driver should be able to see all the nearby requests according to the distance calculated and choose the one they'd like to accept.

Estimated size in story points: 8/10

Risk: Medium; It is important for the drivers to pick their customers; one of the main functions of our app.

Part2 - User Cases

Rationale: we should determine all the user cases with quick links, story level and risk level.

Estimated size in story points: 6/10

Risk: Medium; It is important to know all the requirements and specifications; they may adjust in the future.

Part3 - [Code] Rider/Driver Class

Rationale: We should implement driver and rider classes so that it can store their info.

Estimated size in story points: 8/10

Risk: Medium; It is important to keep track of the names, emails, and other identification data of the users.

Part3 - [Code] LoginIn Activity

Rationale: Finished the Login Activity and connect it to the database.

Estimated size in story points: 7/10

Risk: High; It is crucial to have login activity for registered users.

Part3 - App Icon

Rationale: The app needs an appropriate icon.

Estimated size in story points: 4/10

Risk: Low; It is important but low risk to have an icon.

Part3 - [Code] Payment Pay/Get Money

Rationale: After scanning the QR code, the money is transferred from rider to driver.

Estimated size in story points: 9/10

Risk: High; It is a crucial interaction between riders and drivers in this app.

Part4 - [Code] Offline Behavior

Rationale: It is important for the rider to check the current request and check the driver details.

Estimated size in story points: 7/10

Risk: Medium; It is important to have the offline behaviours but not high risk.

Part3 - [Code] Request Activity

Rationale: We should implement a request activity that can send and receive requests between rider and user.

Estimated size in story points: 8/10

Risk: Medium; It is important to have the request function in a taxi-hailing app.

Part2 - User Interface Mockups and Storyboard Sequences

Rationale: We need to make the mockups for the user interface and storyboard sequences

Estimated size in story points: 4/10

Risk: low; It is important but low risk to make the user interface mockups before we design the app.

Part3 - [Code] SignUp Activity

Rationale: Finished the SignUp Activity and connect it to the database.

Estimated size in story points: 8/10

Risk: High; It is crucial to have SignUp activity for users to register.

Part3 - [Code] Profile

Rationale: a function for users to check & edit their own information.

Estimated size in story points: 8/10

Risk: High; It is important to connect to firebase and do the updates as users want.

Part3 - Frist Version UI/Layout Design

Rationale: We should determine UI/Layout design according to the interface mockup.

Estimated size in story points: 7/10

Risk: Medium; It is important for the app to have a neat, concise, easy-to-use interface.

Part4 - [Code] Cancel Behavior

Rationale: It is important for the rider to cancel a request if he/she changed the mind.

Estimated size in story points: 9/10

Risk: High; It is high risk if the riders can't cancel the request. It will be problematic.

Part3 - [Code] Rider's Map and View

Rationale: a function for riders to see the locations of all available drivers nearby.

Estimated size in story points: 9/10

Risk: High; It is important to show the correct drivers near the rider and provides an approximated fees.

Part4 - [Code] Rider Current Request

Rationale: It is important for the rider to check the current request and check the driver details.

Estimated size in story points: 9/10

Risk: High; It is a crucial function of this app.

Part4 - [Code] Driver Current Request

Rationale: It is important for the driver to check the available requests sent by the rider.

Estimated size in story points: 9/10

Risk: High; It is a crucial function of this app.

Part 3- Add Wallet for Driver & Rider

Rationale: It is important for users to check their balance and make the transfer.

Estimated size in story points: 9/10

Risk: High; It is an important function of this app.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.