CoffeeApp

Java, xml + Documentation

About the Project

1.Introduction

LA TROBE SUB is an Android application developed using Java and XML. The app allows users to create an account, login, and book coffee to be delivered to their room on a specific date and time. The project utilizes various libraries and integrates with Firebase services such as authentication, Firestore database, and real-time database. The app supports both dark and light themes and is available only in English.

2.Prerequisites

To build and run the LA TROBE SUB Android app, you need the following prerequisites:

  • Android Studio IDE (version 4.1 or later)
  • Java Development Kit (JDK 8 or later)
  • Android SDK with minimum API level 21 (Android 9 Pie) and target API level 33 (Android 13 Tiramisu)

3.Project Structure

The LA TROBE SUB project follows a typical Android project structure. Here's an overview of the main directories and files:

4.Libraries Used

The LA TROBE SUB app utilizes the following libraries:

  • RecyclerView: A library for displaying large sets of data efficiently in a scrollable view.
  • CardView: A library for displaying cards, which are a flexible and extensible container for displaying content.
  • EasyDataStorage: A library for easy data storage and retrieval.
  • Firebase Analytics: A service provided by Firebase for tracking user interactions and generating usage statistics.
  • Firebase Crashlytics: A service provided by Firebase for collecting and analyzing crash reports.
  • Firebase Authentication: A service provided by Firebase for user authentication and authorization.
  • Firestore Database: A NoSQL cloud database provided by Firebase for storing and syncing app data.
  • Realtime Database: A NoSQL cloud database provided by Firebase for storing and syncing app data in real time.
  • Glide: A powerful image loading and caching library for Android.
  • Snap-time-picker: A library for selecting date and time values

5.Screens

  • Login Screen The Login Screen is the first screen users encounter when launching the app. It allows users to log in using their email and password. The screen utilizes Firebase Authentication for user login. Once logged in, the user is directed to the Main Screen unless they log out of the app.
  • Forgot password Screen The Forgot OTP Screen provides a mechanism for users to reset their password in case they forget it. Users can enter their registered email address and receive a link to reset their password. This screen interacts with Firebase Authentication to handle the password reset process.
  • Register Screen The Register Screen enables users to create a new account in the app. It uses the Firestore Database to store user information. The screen includes fields such as Full Name, Phone Number, Email ID, Student Number (optional), and Password. Upon successful registration, users can proceed to log in using their newly created account.
  • User Quest Screen The User Quest Screen presents a set of questions for users to answer. The answers are stored in the Firestore Database for later use. This screen serves as a survey or questionnaire for collecting user preferences or feedback.
  • Main Screen The Main Screen is the central hub of the app, consisting of four fragments: Home, Recommendations, Chat, and Settings. Users can navigate between these fragments using a bottom navigation bar.
  • Home Screen The Home Screen displays a list of all available coffee options using a RecyclerView and its corresponding adapter. The coffee data is stored and retrieved from the Firestore Database. When a user clicks on an item in the RecyclerView, a Coffee Booking Activity is opened. This activity allows users to book coffee for a specific date and time and specify the building name and room number for delivery.
  • Recommendation Screen The Recommendation Screen provides a list of coffee options that match the user's preferences. These preferences are obtained and stored in the Firestore Database. When a user selects an item from the RecyclerView, the same Coffee Booking Activity is launched as in the Home Screen.
  • Chat Screen The Chat Screen opens a new activity where users can engage in a basic chat with the coffee owner. This functionality is implemented using the Firebase Realtime Database, allowing users to send and receive messages in real time.
  • Settings Screen The Settings Screen allows users to access various app settings and options. It includes the following features:
    1. Profile Settings: Users can update their full name, email ID, phone number, and student number from this screen. The changes made are reflected in the Firestore Database.
    2. Version Name: Displays the current version of the app.
    3. Terms and Conditions: Provides information about the app's terms and conditions.
    4. Logout Button: Allows users to log out of the app and return to the Login Screen.
  • Profile Settings Screen The Profile Settings Screen is accessed from the Settings Screen and enables users to update their profile information. Users can modify their full name, email ID, phone number, and student number. The changes made in this screen are saved to the Firestore Database and reflected in the user's profile.

6.Dark and Light Theme Support

The LA TROBE SUB app supports both dark and light themes. The theme selection is based on the system default theme, but users can also manually switch between dark and light themes from the app settings. The app's theme is applied to all screens and components, providing a consistent visual experience.

7.Language Support

The LA TROBE SUB app is available only in the English language. All text content, including user interface labels, error messages, and other textual elements, are presented in English.

8.Conclusion

This documentation provides an overview of the LA TROBE SUB Android app developed using Java and XML. It covers the project structure, libraries used, and details about each screen and its functionality. The app allows users to create an account, log in, and book coffee for delivery to their room. Integration with Firebase services such as authentication, Firestore database, and real-time database enhances the app's functionality. Dark and light theme support and English language localization contribute to a user-friendly experience

  • Project Year

    2022

  • Client Name

    anchalghuman

  • Contributors

    Venkey, DK

  • Deliverables

    Android app, Rest API

  • Duration

    1 month

  • Country

    Australia