A modern, feature-rich Android application for managing and viewing timetables with separate interfaces for teachers and students, featuring MongoDB Atlas integration for online data storage and real-time synchronization.
- Features
- Screenshots
- Architecture
- Setup Instructions
- Usage Guide
- Technical Details
- API Documentation
- Contributing
- License
- π Secure Authentication: Login/Register with email and password
- π Modern Dashboard: Material Design 3 interface with real-time data
- π Lecture Management: Add, edit, and delete lectures with intuitive UI
- π Day-wise Organization: View lectures organized by days of the week
- π Real-time Updates: Swipe to refresh functionality
- π Unique Teacher Codes: Each teacher gets a unique 6-character code for sharing
- π± Responsive Design: Works seamlessly on all screen sizes
- π¨ Material Design 3: Modern UI with dynamic colors and animations
- π Teacher Code Access: Students can view timetables using teacher's unique code
- π Today & Tomorrow View: See current and next day's schedule
- π¨ Modern UI: Clean, intuitive interface with Material Design 3
- π Real-time Updates: Automatic refresh of timetable data
- π± Offline Support: View cached data when offline
- π― Quick Navigation: Easy switching between days
- βοΈ MongoDB Integration: Full online data storage using MongoDB Atlas REST API
- πΎ Local Storage: Fallback to local storage when offline
- π Data Synchronization: Automatic sync between local and cloud data
- π Security: Secure authentication and data encryption
- π Performance: Optimized for fast loading and smooth interactions
- π Error Handling: Comprehensive error handling and user feedback
- π± Cross-platform: Designed for Android with modern development practices
- π¨ Material Design 3: Modern design system with dynamic colors
- π± Responsive Layout: Works on all screen sizes (phone, tablet)
- β¨ Smooth Animations: Fade-in animations and smooth transitions
- π― Color-coded Days: Each day has a distinct color theme
- π Card-based Design: Information displayed in elegant cards
- βΏ Accessibility: Proper content descriptions and touch targets
- π Dark Mode: Support for light and dark themes
[Screenshot of main activity with role selection will be added here]
[Screenshot of teacher dashboard with lecture management will be added here]
[Screenshot of student timetable view will be added here]
[Screenshot of login/register interface will be added here]
[Screenshot of lecture editing interface will be added here]
- π Lecture: Enhanced with ID, timing, teacher code, and active status
- π¨βπ« Teacher: Complete teacher information with unique codes
- π§ MongoDBService: Centralized data management service with REST API integration
- π MainActivity: Role selection (Teacher/Student)
- π TeacherLoginActivity: Teacher authentication
- π¨βπ StudentLoginActivity: Student access with teacher codes
- π TeacherDashboardActivity: Teacher's lecture management
- π StudentTimetableActivity: Student's timetable view
- βοΈ EditLectureActivity: Lecture editing interface
- π EnhancedLectureAdapter: Modern RecyclerView adapter with Material Design 3
- βοΈ ConfigManager: Manages app configuration and MongoDB settings
- π config.properties: Configuration file for database and API settings
- Android Studio Arctic Fox or later
- Android SDK 24+ (API level 24)
- Gradle 7.0+
- MongoDB Atlas account (for online data storage)
- Internet connection for initial setup
git clone https://github.com/yourusername/timetable-app.git
cd timetable-app- Open Android Studio
- Select "Open an existing Android Studio project"
- Navigate to the cloned directory and select it
- Wait for Gradle sync to complete
- Sign up for MongoDB Atlas at MongoDB Atlas
- Create a new cluster
- Enable MongoDB Data API
- Edit
app/src/main/assets/config.properties - Replace username and password in the MongoDB URI
- Connect an Android device or start an emulator
- Click "Run" in Android Studio
- Select your device and click "OK"
The app now uses MongoDB Atlas REST API for online data storage:
Current Configuration:
MONGODB_URI=mongodb+srv://Mehta:utsav@main.coglx0c.mongodb.net/?retryWrites=true&w=majority&appName=Main
DB_NAME=timetable_db
COLLECTION_LECTURES=lectures
COLLECTION_TEACHERS=teachersSee CONFIGURATION.md for detailed setup instructions.
- Launch the app and select "Teacher"
- Register with your details or login if already registered
- Access dashboard to manage your lectures
- Share your unique code with students
- Add Lecture: Tap the floating action button (+)
- Edit Lecture: Tap on any lecture card
- Delete Lecture: Swipe left on lecture card
- View by Day: Use tab navigation to switch between days
- Real-time Sync: All changes sync automatically with MongoDB
- Offline Support: Work offline with local cache
- Data Backup: Automatic cloud backup of all data
- Launch the app and select "Student"
- Enter teacher's unique code (provided by your teacher)
- View timetable for today and tomorrow
- Swipe down to refresh the data
- Today's Schedule: View current day's lectures
- Tomorrow's Schedule: Plan ahead for next day
- Real-time Updates: Automatic refresh when teacher makes changes
- Offline Access: View cached data when offline
// Material Design 3
implementation("com.google.android.material:material:1.11.0")
// RecyclerView and UI Components
implementation("androidx.recyclerview:recyclerview:1.3.2")
implementation("androidx.cardview:cardview:1.0.0")
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
// Network and JSON
implementation("com.squareup.okhttp3:okhttp:4.12.0")
implementation("com.squareup.retrofit2:retrofit:2.9.0")
implementation("org.json:json:20231013")- π REST API Approach: Uses MongoDB Data API for Android compatibility
- π Automatic Connection: Tests connection on startup
- π‘οΈ Error Handling: Comprehensive error logging and fallback mechanisms
- πΎ Local Cache: Maintains local data for immediate access
- π Thread Safety: Uses ExecutorService for background operations
- β‘ Fast Loading: Optimized data loading and caching
- π Efficient Updates: Smart sync only when needed
- π± Memory Management: Proper memory usage and cleanup
- π Search Optimization: Fast search and filtering
- π Secure Authentication: Email and password verification
- π Data Encryption: Sensitive data encryption
- π‘οΈ API Security: Secure API key management
- π Input Validation: Comprehensive input validation
https://data.mongodb-api.com/app/{app-id}/endpoint/data/v1/action/
All requests require an api-key header with your MongoDB Atlas API key.
POST /insertOne
Content-Type: application/json
api-key: {your-api-key}
{
"dataSource": "Main",
"database": "timetable_db",
"collection": "teachers",
"document": {
"id": "t001",
"name": "AK",
"email": "ak@dpu.ac.in",
"password": "password123",
"department": "Computer Science",
"uniqueCode": "AK",
"active": true
}
}POST /find
Content-Type: application/json
api-key: {your-api-key}
{
"dataSource": "Main",
"database": "timetable_db",
"collection": "teachers",
"filter": {
"active": true
}
}POST /updateOne
Content-Type: application/json
api-key: {your-api-key}
{
"dataSource": "Main",
"database": "timetable_db",
"collection": "teachers",
"filter": {
"id": "t001"
},
"update": {
"$set": {
"name": "Updated Name",
"active": false
}
}
}The app comes with comprehensive sample data for demonstration:
- AK - Computer Science (ak@dpu.ac.in)
- CS - Computer Science (cs@dpu.ac.in)
- IS - Information Systems (is@dpu.ac.in)
- SRS - Software Engineering (srs@dpu.ac.in)
- SS - Management (ss@dpu.ac.in)
- APK - Computer Science (apk@dpu.ac.in)
- SV - Computer Science (sv@dpu.ac.in)
- VV - Statistics (vv@dpu.ac.in)
- DSA - Data Structures and Algorithms
- IOT - Internet of Things
- STATISTICS - Statistical Analysis
- SE - Software Engineering
- DSA Lab - Practical sessions
- IOT Lab - Hands-on IoT projects
All sample data is automatically initialized in MongoDB on first run.
- β MongoDB REST API integration completed
- β Automatic connection testing implemented
- β Error handling and fallback mechanisms added
- β Sample data initialization in MongoDB
- β Thread-safe operations with ExecutorService
- β Material Design 3 UI enhancements
- β Comprehensive documentation updated
- β Performance optimizations implemented
- β Basic timetable functionality
- β Local storage implementation
- β Simple UI design
- Push Notifications: Real-time notifications for schedule changes
- Offline Mode: Full offline functionality with local database
- Multiple Teachers: Support for multiple teachers per student
- Calendar Integration: Sync with device calendar
- Export/Import: Data export and import functionality
- Advanced Search: Advanced filtering and search capabilities
- Analytics: Usage analytics and reporting
- Real-time Collaboration: Real-time collaboration features
- Voice Commands: Voice-activated timetable management
- Widget Support: Home screen widgets for quick access
- Performance: Further performance optimizations
- Security: Enhanced security features
- Testing: Comprehensive unit and integration tests
- CI/CD: Automated testing and deployment
- Monitoring: Application monitoring and analytics
We welcome contributions! Please follow these steps:
- Fork the repository
- Clone your fork locally
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Test thoroughly
- Commit your changes:
git commit -m 'Add amazing feature' - Push to your branch:
git push origin feature/amazing-feature - Submit a pull request
- Follow Android development best practices
- Use Material Design 3 guidelines
- Write comprehensive tests
- Document your code
- Follow the existing code style
- Run unit tests:
./gradlew test - Run instrumentation tests:
./gradlew connectedAndroidTest - Test on multiple devices and screen sizes
This project is licensed under the MIT License - see the LICENSE file for details.
Utsav Mehta - Enhanced TimeTable App v2.0
- Email: utsavmehta24072003@gmail.com
- GitHub: @utsavmehta24
- LinkedIn: Utsav Mehta
- MongoDB Atlas for cloud database services
- Material Design team for design guidelines
- Android Developer Community for support and resources
- Open Source Contributors for various libraries and tools
For support and questions:
- Email: utsavmehta24072003@gmail.com
- Issues: GitHub Issues
- Documentation: Wiki
Built with β€οΈ using Material Design 3, MongoDB Atlas, and modern Android development practices.
Last updated: August 2025
