UniSchedule is a comprehensive app designed specifically for students of the Faculty of Electrical Engineering and Computer Science at the Lublin University of Technology. It seamlessly integrates with the university's scheduling system to provide a personalized and interactive experience for managing your class schedule.
-
Schedule Integration: Connect with the university's schedule system by providing your unique schedule link.
-
Horizontal Pager View: Display your class schedule in a horizontal pager, making it easy to swipe through your weekly classes.
-
Custom Layout: Classes are visually arranged in a custom layout according to their time slots and duration, providing a clear and organized view of your schedule.
-
Live Time Indicator: A red line dynamically shows the current time on your schedule.
-
Class Details Popup: Tap on any class to view detailed information in a popup window.
-
Refresh Schedule: Reload your schedule from the server to ensure you have the latest updates.
-
Data Caching: Your schedule is cached locally using Room Database, allowing offline access to your schedule.
-
Link Management: Save and update your schedule link using DataStore, ensuring your data is persistent across app sessions.
- Glance Widget: A widget that shows the current or next class, updating every 15 minutes to keep you informed.
-
Jetpack Compose: Leverages Jetpack Compose's declarative UI toolkit to create a modern and responsive interface.🎨
-
Clean MVVM Architecture: Implements a clean architecture pattern with repositories and use cases, ensuring maintainability and scalability.🔧
-
Room database: Uses SQLite ORM (Object-Relational Mapping) library to cache your schedule for offline access.
-
Retrofit2: Fetches schedule data from the server.
-
Dagger Hilt: Handles dependency injection throughout the app, including network clients, repositories, and use cases.
-
Glance: Powers the app widget for showing current or next classes.
-
Material Designs: Used to create the app's intuitive and visually appealing interface (Scaffold, Horizontal Pager, Tabs, Alert Dialog)
- Node.js: The backend server that processes requests and serves schedule data in JSON format.
- Clone the repository:
git clone https://github.com/AdamDawi/Uni-schedule
- Open the project in Android Studio.
- Be sure the versions in gradle are same as on github
Minimum version: Android 8 (API level 26) or later📱
Target version: Android 14 (API level 34) or later📱
Adam Dawidziuk🧑💻
Sebastian Dragan🧑💻