Skip to content

πŸ“š 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.

Notifications You must be signed in to change notification settings

AnbalaganD/SchoolApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

31 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“š 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

    git clone https://github.com/<your-username>/SchoolApp.git
    cd SchoolApp
  2. Configure Firebase

    • Create a new Firebase project at Firebase Console
    • 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

    ./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.

About

πŸ“š 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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages