AutoTrace is an all-in-one Android application designed to keep drivers informed and responsible. By logging in to their accounts, users can effortlessly access a wealth of information, including their up-to-date traffic violations, ensuring they never miss a ticket payment. Additionally, the app provides real-time insurance information such as provider details and premium status. AutoTrace also offers insights into basic vehicle information like car model, registration year and insurance provider by just inputting a license plate number without logging in. Its unique feature of registering vehicles from the centralized database of cars with associated driver's name and license plates further enhances the personalized user experience, making AutoTrace an essential tool for every driver.
We aimed to create an app that works as a centralized system for displaying issued traffic tickets. The app displays information about each car, such as insurance provider. Another app feature is verifying ownership details by looking up any vehicle registered by the license plate in the database. Users can create an account to register their cars and view filed traffic tickets.
- Access Basic Car Information: Users can input a license plate number and retrieve the corresponding car model and registration date.
- Vehicle Registration: Users register vehicles under their account by providing information (Vehicles/License Plates have to already exist in the database).
- User Log In: Returning Users are able to Log in to their previously created accounts to view their User-specific Information.
- User Registration: Users can create new accounts by providing their emails and creating a password
- Vehicle Information: Users can view detailed information about registered vehicles, such as Models and Insurance Details.
- Traffic Violations: Users can check for any traffic violation tickets associated with a particular vehicle, displaying relevant details such as amount payable, issue date, intersection, and violation description.
- Navigation Bar: Provides an accessible way for Users to navigate between different screens
- User opens the AutoTrace Android app
- User enters the license plate number into the input field under the Log-In section and taps on the "Continue" button.
- The app processes the input and queries the relevant databases based.
- The app retrieves the car model and registration date associated with the provided license plate number.
- Finally, the app displays the car model and registration date on the user interface, allowing the user to view a limited amount of information.
- User logs into the AutoTrace app using their email and password.
- User taps the plus button on the Dashboard/Home Screen, which redirects to the vehicle registration screen.
- User inputs the license plate number, Last Name, and Date of Birth into the provided fields.
- After filling in the required information, the administrator taps on the "Register" button to submit the details.
- Information is then verified based on if the vehicle exists in the database.
- If the information is valid, the vehicle is registered under the User's Account and is now viewable from the dashboard.
- User logs in with their email and password.
- They are directed to the home screen, where they can view different previously registered vehicles.
- The user selects a specific vehicle and can access the car information screen, which includes insurance Provider, Car Model/Year, and Owner.
- User logs in with their email and password.
- They are directed to the home screen.
- The user presses the traffic violation icon in the navigation bar.
- They are taken to the traffic violations page, displaying various tickets with details such as the amount payable, date the ticket was issued, the intersection where the violation occurred, and a description of the violation (e.g., parking ticket, traffic light violation).
- User launches the application
- User prompted with the splash screen
- User inputs their email and password
- Directed to Home Screen
- User presses the sign-up button upon launching the app
- User inputs their email, password, and password confirmation.
- The user views a verification success pop-up confirming their successful registration.
- User presses the Forgot Password button upon launching the app
- User inputs their email.
- An email is sent to the user's email containing a reset password link.
- User clicks the link, inputs their new password
- User's password is updated in the database
- We made repeated use of the MVP model of designing apps from Clean Architecture
- Examples of this are the UseProfile, Login and Signup Screens
- Every package is separated into a model, view and presenter to follow MVP
- Integrated with entities and use cases to follow Clean Architecture
- The separation of xml files for frontend in AndroidStudio helps separate roles further
- Follows the SOLID Design Principles
- An example of this is
FetchCarInfoUseCase
- This use case extracts car details and returns a car object
- Some examples of this are the CarEntity and UseAccountEntity
- CarEntity is what is returned in
FetchCarInfoUseCase
- We made use of the observer pattern to implement the ForgotPassword feature
- ForgotPasswordPresenter implements observable
- Observer observers the presenter to see if ForgotPassword succeeded or failed
- The update logic of update in observer is implemented in the model to follow CleanArchitecture
- (Scrum Master)
- Directed and Delegated Tasks
- Co-organized team meetings and assigned roles
- Set Up Firebase Database
- Worked on the frontend and backend of Access Basic Info, Sign Up, Traffic Violations, HomeScreen, Register New Vehicle Screen
- Refactored and repackaged the source code
- Worked on Readme
- Worked on Figma Designs
- Co-organized Team Meetings
- Worked on Read Me
- Worked on Frontend for Splash, Traffic Violations, Access Basic Info,
- Log In Screens and backend work for Home Screen
- Debugging the splash screen code
- Worked on Figma Designs
- Refactoring Code for Login Screen
- Worked on Frontend and Backend for Login Screen
- Worked on Frontend and Backend for Signup Screen
- Implemented Frontend for Forgot Password Screen
- Implemented the Forgot Password feature with real emails
- Worked on Figma Designs
- Worked on Read Me
- Implemented Frontend and Backend for Profile Screen
- Worked on navigating between the screens
- Streamlined buttons and xml naming conventions
- Refactored code into Clean Architecture
- Worked on Figma Designs
- The home screen has dummy values rather than real vehicle models
- The basic access from license plate shows inconsistent names
- The database is set up so the ticket violations page can only display one ticket at a time