https://github.com/anbalagand/schoolapp
π A hobby Android app for students to manage todos, track assignments with visual progress charts, built with Kotlin, Firebase & Google Sign-In. A personal learning project exploring modern Android development.
https://github.com/anbalagand/schoolapp
android android-app assignment-tracker coroutines firebase firebase-auth firebase-firestore google-sign-in kotlin learning-project material-design mpandroidchart student-app todo-app
Last synced: 2 days ago
JSON representation
π A hobby Android app for students to manage todos, track assignments with visual progress charts, built with Kotlin, Firebase & Google Sign-In. A personal learning project exploring modern Android development.
- Host: GitHub
- URL: https://github.com/anbalagand/schoolapp
- Owner: AnbalaganD
- Created: 2018-06-04T17:29:26.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2026-01-30T16:39:36.000Z (14 days ago)
- Last Synced: 2026-01-31T05:37:24.880Z (14 days ago)
- Topics: android, android-app, assignment-tracker, coroutines, firebase, firebase-auth, firebase-firestore, google-sign-in, kotlin, learning-project, material-design, mpandroidchart, student-app, todo-app
- Language: Kotlin
- Homepage:
- Size: 638 KB
- Stars: 1
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# π SchoolApp
> A personal hobby Android project for exploring modern Android development concepts and expanding my skills during free time.
## π― Project Motive
This project serves as a **learning playground** to:
- Explore and practice modern Android development patterns and libraries
- Experiment with Firebase integration (Authentication, Firestore, Realtime Database)
- Build a practical app that could be useful for students managing their academic life
- Stay updated with the latest Android SDK and Kotlin features
## β¨ Features
### π Authentication
- **Google Sign-In** integration using the latest Credential Manager API
- Secure Firebase Authentication
- User profile management with profile picture display
### π Todo Management
- Create, view, and manage personal todo items
- Data persistence with Firebase Firestore
- Clean list-based UI
### π Assignment Tracking
- Add and track academic assignments with:
- Title and description
- Unit information
- Total marks and marks obtained
- **Assignment Status Dashboard** with pie chart visualization (using MPAndroidChart)
### π Customizable Home Menu
- Grid-based primary menu with 7 customizable options:
- Todo
- Assignment
- Web Link (Chrome Custom Tabs)
- Mail (Gmail integration)
- Drive
- Timetable
- Calendar
- Ability to enable/disable menu items per user preference
- Menu configuration synced with Firebase
### βοΈ Settings
- User profile display with Google account info
- Manage primary menu visibility
- Logout functionality
## π οΈ Tech Stack
| Category | Technology |
|----------|------------|
| **Language** | Kotlin |
| **Min SDK** | 26 (Android 8.0) |
| **Target SDK** | 36 |
| **UI** | Android XML Layouts, Material Design |
| **Architecture** | Activity-based |
| **Authentication** | Firebase Auth + Google Sign-In (Credential Manager) |
| **Database** | Firebase Firestore & Realtime Database |
| **Charts** | MPAndroidChart |
| **Web** | Chrome Custom Tabs |
| **Async** | Kotlin Coroutines |
| **Build** | Gradle with Kotlin DSL |
## π Project Structure
```
app/src/main/java/edu/schoolapp/
βββ SchoolApp.kt # Application class with SharedPreferences
βββ LoginActivity.kt # Google Sign-In entry point
βββ HomeActivity.kt # Main dashboard with primary menu
βββ TodoFragment.kt # Todo list screen
βββ ActivityAddTodo.kt # Add new todo
βββ AssignmentActivity.kt # Assignment list screen
βββ AddAssignmentActivity.kt # Add new assignment
βββ AssignmentStatusActivity.kt # Pie chart status visualization
βββ SettingsActivity.kt # User settings and logout
βββ ManageListFragment.kt # Enable/disable menu items
βββ googleSingIn/ # Google authentication service
β βββ GoogleAuth.kt # Auth data model
β βββ GoogleAuthenticationService.kt
βββ model/ # Data models
βββ TodoModel.kt
βββ AssignmentModel.kt
βββ PrimaryMenuDao.kt
```
## π Getting Started
### Prerequisites
- Android Studio (latest stable version recommended)
- JDK 11 or higher
- A Firebase project with:
- Firebase Authentication (Google Sign-In enabled)
- Cloud Firestore
- Realtime Database
### Setup
1. **Clone the repository**
```bash
git clone https://github.com//SchoolApp.git
cd SchoolApp
```
2. **Configure Firebase**
- Create a new Firebase project at [Firebase Console](https://console.firebase.google.com/)
- Add an Android app with package name `edu.schoolapp`
- Download `google-services.json` and place it in the `app/` directory
- Enable Google Sign-In in Firebase Authentication
- Create Firestore and Realtime Database instances
3. **Build and Run**
```bash
./gradlew assembleDebug
```
Or open the project in Android Studio and run directly.
## π± Screenshots
*Coming soon...*
## πΊοΈ Roadmap
- [ ] Migrate to Jetpack Compose
- [ ] Implement MVVM architecture with ViewModels
- [ ] Add Timetable and Calendar functionality
- [ ] Add Drive integration
- [ ] Implement notifications for assignment deadlines
- [ ] Add dark mode support
- [ ] Write unit and UI tests
## π License
This project is for personal learning purposes. Feel free to explore and learn from the code!
---
**Note:** This is a hobby project built during free time for learning and skill development. It's continuously evolving as I explore new Android concepts and libraries.