Skip to content

AdityaSuresh27/Software-Project-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ClassFlow - Academic Planning & Management App

A comprehensive Flutter-based academic management application designed to help students organize their classes, assignments, exams, and track attendance efficiently.

Features

Core Functionality

  • Unified Event System: Manage classes, exams, assignments, meetings, and personal events in one place
  • Timetable Management: Create recurring class schedules with automatic event generation
  • Attendance Tracking: Mark and monitor attendance for all classes with detailed statistics
  • Calendar View: Visual calendar with event overview and daily planning
  • Timeline View: Hour-by-hour breakdown of your day with event details
  • Voice Notes: Record and attach voice notes to any event
  • Smart Reminders: Set custom reminders for events and deadlines
  • Dark Mode: Full dark mode support with theme persistence

Event Management

  • Multiple event classifications (Class, Exam, Assignment, Meeting, Personal, Other)
  • Priority levels (Low, Medium, High, Critical)
  • Categories/subjects for organization
  • Completion tracking with visual indicators
  • Event duplication and bulk management
  • Important event flagging

Attendance Features

  • Five attendance statuses (Present, Absent, Late, Excused, Cancelled)
  • Automatic attendance statistics calculation
  • Per-class attendance tracking
  • Visual attendance rate indicators
  • Integration with timetable entries

Prerequisites

Before running this project, ensure you have the following installed:

  • Flutter SDK (3.0.0 or higher)
  • Dart SDK (3.0.0 or higher)
  • Android Studio / Xcode (for mobile development)
  • A code editor (VS Code, Android Studio, or IntelliJ IDEA)

Installation

1. Clone the Repository

git clone <repository-url>
cd classflow

2. Install Dependencies

flutter pub get

3. Verify Flutter Installation

flutter doctor

Ensure all required components are installed and configured correctly.

Running the Application

On Android Emulator/Device

  1. Start an Android emulator or connect an Android device via USB
  2. Run the following command:
flutter run

On iOS Simulator/Device (macOS only)

  1. Start an iOS simulator or connect an iOS device
  2. Run the following command:
flutter run

On Web

flutter run -d chrome

Build Release Version

Android APK

flutter build apk --release

Android App Bundle

flutter build appbundle --release

iOS

flutter build ios --release

Dependencies

Core Dependencies

  • provider: ^6.1.1 - State management
  • shared_preferences: ^2.2.2 - Local data persistence
  • intl: ^0.19.0 - Internationalization and date formatting

UI Components

  • table_calendar: ^3.0.9 - Calendar widget
  • google_fonts: ^6.1.0 - Custom fonts
  • flutter_slidable: ^3.0.1 - Swipe actions

Audio & Media

  • record: ^5.0.4 - Audio recording
  • audioplayers: ^5.2.1 - Audio playback
  • path_provider: ^2.1.2 - File system access

Notifications & Permissions

  • flutter_local_notifications: ^16.3.0 - Local notifications
  • permission_handler: ^11.2.0 - Runtime permissions
  • timezone: ^0.9.2 - Timezone handling

Utilities

  • uuid: ^4.3.3 - Unique ID generation

Configuration

Android Setup

  1. Update android/app/build.gradle:

    • Minimum SDK version: 21 or higher
    • Compile SDK version: 34 or higher
  2. Add permissions in android/app/src/main/AndroidManifest.xml:

<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"/>

iOS Setup

  1. Update ios/Podfile:

    • Uncomment platform :ios, '12.0' and set to 12.0 or higher
  2. Add permissions in ios/Runner/Info.plist:

<key>NSMicrophoneUsageDescription</key>
<string>This app needs microphone access to record voice notes</string>
<key>NSUserNotificationsUsageDescription</key>
<string>This app needs notification access to remind you of events</string>

Data Storage

The app uses SharedPreferences for local data storage. All data is stored on the device and persists between app sessions.

Stored Data

  • Events and tasks
  • Timetable entries
  • Attendance records
  • Categories
  • User preferences (theme, authentication status)
  • Voice note file paths

Data Location

  • Android: /data/data/<package-name>/shared_prefs/
  • iOS: Library/Preferences/
  • Voice recordings: Application documents directory

Features Guide

Creating Events

  1. Tap the floating action button on any screen
  2. Select event classification (Class, Assignment, Exam, etc.)
  3. Fill in required details (title, date/time)
  4. Optionally add: category, location, notes, priority, reminders
  5. Save the event

Managing Timetable

  1. Navigate to Timetable from the home page quick actions
  2. Tap "Add Class" button
  3. Enter class details:
    • Course name and code
    • Instructor and room
    • Days of week (select multiple)
    • Start time and duration
    • Semester start/end dates
  4. The system automatically generates recurring class events

Tracking Attendance

  1. Open the Attendance page from home or timetable
  2. Select a class to view details
  3. Mark attendance for each class session:
    • Present
    • Absent
    • Late
    • Excused
    • Cancelled (not counted in statistics)
  4. View attendance statistics and percentage

Using Voice Notes

  1. While creating/editing an event, go to the "Notes" tab
  2. Tap "Record" button
  3. Record your voice note
  4. Add optional tags for organization
  5. Save the voice note (attached to the event)

Setting Reminders

  1. Edit an event
  2. Go to "Advanced" tab
  3. Tap "Add Reminder"
  4. Select date and time for the reminder
  5. Multiple reminders can be added per event

Troubleshooting

App Won't Build

  1. Clean the build:
flutter clean
flutter pub get
  1. Check Flutter installation:
flutter doctor -v

Notifications Not Working

  1. Ensure permissions are granted in device settings
  2. Check notification channel settings
  3. Verify flutter_local_notifications is properly configured

Audio Recording Issues

  1. Grant microphone permissions in device settings
  2. Test on physical device (emulators may have issues)
  3. Verify record package compatibility with your OS version

Data Loss

  • Data is stored locally; uninstalling the app deletes all data
  • Sign out functionality clears all data
  • No cloud backup is currently implemented

Known Limitations

  • No cloud synchronization (data is local only)
  • No multi-device support
  • Voice notes stored locally (not backed up)
  • Calendar does not sync with external calendars
  • No export/import functionality for data

Performance Optimization

  • Events are loaded on-demand
  • Timetable generation is optimized for large date ranges
  • Images and voice notes use compressed formats
  • Efficient state management with Provider

Development

Running Tests

flutter test

Code Formatting

flutter format .

Static Analysis

flutter analyze

Version Information

  • Current Version: 2.0.0
  • Minimum Flutter Version: 3.0.0
  • Supported Platforms: Android, iOS

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •