Moovit is an Android bus pass booking application developed as part of COMP50011-K-I - Mobile Application Development I. The app provides user registration and sign-in, profile management, route and duration selection, payment entry, QR/pass download, and offline fallback handling, with a light and dark theme for accessibility and user preference.
The Moovit mobile application delivers the following features:
- The mobile application was developed with 10 screens, exceeding the requirement of having at least four screens.
- Suitable navigation was implemented to allow users to move smoothly between all screens.
- Android and general mobile interface design guidelines were applied throughout the application.
- All screens contained appropriate, well-structured content, with no placeholder text such as Lorem ipsum.
- Text elements were correctly formatted, using appropriate font families and sizes for mobile readability.
- The application utilised suitable and optimised media in the correct file formats.
- The interface responded correctly to orientation changes, supporting both landscape and portrait modes.
- The application adapted effectively to different screen sizes and resolutions, ensuring full mobile responsiveness.
- Offline functionality was implemented, including fallback screens when online data sources were unavailable.
- The application successfully captured user input through well-designed forms.
- Data transfer between screens was implemented to support multi-screen workflows.
- The app retrieved data from an external API/JSON source (Firebase API).
- The application read from and wrote data to a local data source, supporting persistent storage.
- A day and night mode (light and dark theme) was implemented to enhance accessibility and user preference.
- All forms were designed specifically for mobile devices, ensuring usability and clarity.
- The application was fully configured with an Android app manifest and made use of appropriate icons for branding and navigation.
- Java 8: Source and target compatibility set to Java 1.8.
- Android SDK: compileSdk 33, minSdk 30, targetSdk 33.
- Android Gradle Plugin: 8.0.1.
- Google Services Gradle Plugin: 4.3.15.
- AndroidX AppCompat: 1.6.1.
- Material Components for Android: 1.9.0 (Google Material Icons).
- AndroidX ConstraintLayout: 2.1.4.
- Firebase Authentication: 22.0.0 (including firebase-auth-ktx 22.0.0).
- Firebase Firestore: 24.6.1.
- CircleImageView: 3.1.0.
- JUnit: 4.13.2 (unit testing).
- AndroidX Test: junit 1.1.5, espresso-core 3.5.1 (instrumentation testing).
- Course: COMP50011-K-I - Mobile Application Development I
- Platform: Android (Java)
- Screens/Activities: SplashActivity, LoginUser, RegisterUser, MainActivity, UserProfile, RouteDate, Payment, BusPass, TermsConditions, FallbackScreen
- Data Sources: Firebase Authentication and Firestore
- Local Storage: Bus pass image saved to device Downloads
- Offline Handling: Fallback screen when there is no network connectivity
To run the Moovit Android application locally, follow these steps:
-
Clone the repository:
git clone https://github.com/supunxiii/moovit.git
-
Open the project in Android Studio.
-
Allow Gradle to sync dependencies.
-
Run the app on an emulator or physical Android device (API 30+ recommended).
Optional build command:
./gradlew assembleDebugmoovit/
├── app/
│ ├── build.gradle
│ ├── google-services.json
│ ├── proguard-rules.pro
│ └── src/main/
│ ├── AndroidManifest.xml
│ ├── java/com/example/userprofile/ # Activities and application logic
│ └── res/ # Layouts, drawables, values, mipmaps
├── build.gradle
├── gradle/
├── gradle.properties
├── gradlew
├── gradlew.bat
└── settings.gradle
This project was developed by:
- Supun Wijesooriya - Developer
Contributions to Moovit are welcome. If you would like to contribute, please follow these steps:
-
Fork the repository.
-
Create a new branch:
git checkout -b feature/your-feature-name
-
Make your changes and commit them:
git commit -m "Add your commit message" -
Push your changes to your forked repository:
git push origin feature/your-feature-name
-
Open a pull request to the main repository, describing your changes and the purpose of the pull request.
- The application is fully mobile-responsive and optimised for different screen sizes and orientations.
- The project was developed as an academic submission following Android UI and UX guidelines.
- Firebase services provide authentication and cloud data storage for user profiles.
- Offline fallback screens are shown when network connectivity is unavailable.
- All content is for demonstration and educational purposes.
For any enquiries or feedback, please contact the developer:
- Supun Wijesooriya: GitHub Profile
- Project Repository: moovit
Designed and developed in June 2023



