The idea of the project is to simplify the visualization and interpretation of the curriculum at the faculty.
The application downloads all the available schedules from Firebase and stores them in a SQLite database on the device. Each student has to register with their group and choose their semigroup. The application displays a calendar of days with the time intervals that the student needs to be present.
- Medium knowledge in Java and Object oriented programming (good starting point)
- Android Studio for development
- An Android 6.0 phone for easy debugging or HAXM supported VM
- Firebase account (good starting point)
firebase
folder contains all the necessary json files for the application to display schedulesapp/src/main/java/mobile/computing/laurentiu/timetableapp/
is the root folder of the source codeHelpers
LoaderAppCompatActivity.java
- provides loading screen functionalityPlaceholderFragment.java
- provides new instances of schedules per daySectionsPagerAdapter.java
- provides the wrapper for the agenda to get schedules
SQLite
DatabaseHelper.java
- provides all the necessary CRUD operationsScheduleDay.java
- model for an activity in a dayScheduleDayActivityType.java
- model for the type of activityScheduleDayParityType.java
- model for the type of parity of activity
Services
FirebaseService.java
andIFirebaseService.java
- provides methods for reading the JSON filesAgendaActivity.java
- the main activity for swiping right/leftConstants.java
- helper class used for Regex patternsDoItYourselfActivity.java
- the activity displayed when a schedule is not found in storageMainActivity.java
- the main activity of the applicationRegisterActivity.java
- the activity in which students register with their group and choose their semigroup
- Upload entire
firebase
folder to Firebase Storage - Modify the Constants.java file and add your firebase URL (should be something like
gs://APP-ID.appspot.com
) - Rebuild and run
The application expects valid input. The input is validated against a Regex (this is specific to bachelor/master programmes is my university). If the input is valid but the schedule does not exist, an activity spawns in which you navigate to this repo and contribute with the schedule that is missing.
After the validation is passed, the schedules are downloaded and the agenda activity remains even if you exit the application. To restart the process, you reset the registration and restart the process.
I'm happy to review and approve any contributions to this project. Fork, pull request and LGTM !