StudySync is a comprehensive Android application designed to help students manage their academic life efficiently. It provides features for course management, task tracking, resource organization, and more, all while maintaining synchronization between local storage and cloud services.
- User authentication using Firebase Authentication
- Profile management with university and semester information
- Secure login and registration system
- Automatic session management
- Add, edit, and delete courses
- Course details include:
- Course name and code
- Instructor information
- Class schedule (days and times)
- Room number
- Semester information
- Credit hours
- Custom color coding
- Course filtering by semester
- Course search functionality
- Course detail view with associated tasks and resources
- Create, edit, and delete tasks
- Task features include:
- Title and description
- Due date and time
- Priority levels
- Task status (Not Started, In Progress, Completed)
- Task type categorization
- Grade tracking
- Course association
- Task filtering options:
- By status
- By priority
- By course
- By due date
- Search functionality
- Task reminders and notifications
- Support for multiple resource types:
- Notes
- Images
- Documents
- Links
- Resource features:
- Title and description
- Course association
- File attachments
- Thumbnail generation for images
- Resource organization and search
- File upload capabilities
- Overview of academic progress
- Upcoming tasks display
- Course statistics
- Quick access to important features
- Visual progress indicators
- Notifications for:
- Task reminders
- Due date alerts
- Course updates
- Resource additions
- Offline-first architecture
- Automatic sync with Firebase Firestore
- Local SQLite database for offline access
- Conflict resolution
- Background sync service
- Sync status indicators
- Notification preferences
- Default reminder settings
- Data management options
- User profile settings
- MVVM (Model-View-ViewModel) architecture
- Repository pattern implementation
- Clean architecture principles
- Dependency injection
- Local SQLite database
- Firebase Firestore integration
- Firebase Storage for file management
- Data synchronization service
- Offline data persistence
- Material Design implementation
- Responsive layouts
- Custom animations and transitions
- Intuitive navigation
- Firebase Authentication
- Secure data storage
- Encrypted local database
- Secure file handling
- Efficient data caching
- Optimized image handling
- Background processing
- Memory management
- Battery optimization
- Android Studio Arctic Fox or newer
- Kotlin 1.6.0 or newer
- Minimum SDK: 21 (Android 5.0)
- Target SDK: Latest stable version
- Gradle 7.0 or newer
- Firebase (Authentication, Firestore, Storage)
- Retrofit for API calls
- Glide for image loading
- MPAndroidChart for statistics
- OneSignal for push notifications
- Coroutines for asynchronous operations
- Room for local database
- Navigation Component
- Material Design Components
- Clone the repository
- Open the project in Android Studio
- Set up Firebase project and add google-services.json
- Configure OneSignal for push notifications
- Build and run the application
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License.
- Firebase for backend services
- Material Design for UI components
- MPAndroidChart for statistics visualization
- OneSignal for push notification services