A comprehensive study companion app for APJ Abdul Kalam Technological University (KTU) students. Access notes, question papers, and AI-powered study assistance - all in one place.
- 📖 Notes Repository - Browse notes organized by branch, semester, and subject
- 📝 Question Papers - Access previous year question papers with filters
- 🤖 AI Study Assistant - Gemini-powered chat for concept explanations
- 📥 Offline Access - Download notes for offline studying
- 🔍 Smart Search - Find notes and papers quickly
- 📋 Syllabus View - Complete syllabus with module breakdown
- 🌙 Dark Mode - Eye-friendly dark theme support
lib/
├── app.dart # App widget
├── main.dart # Entry point
├── config/ # App configuration
│ ├── router.dart # GoRouter setup
│ └── providers.dart # Riverpod providers
├── core/ # Core utilities
│ ├── constants/ # App constants (colors, strings, KTU data)
│ ├── theme/ # Light/dark themes
│ ├── utils/ # Helpers, extensions
│ └── error/ # Error handling
├── services/ # Business logic services
│ ├── storage_service.dart
│ ├── download_service.dart
│ └── ai_service.dart
├── shared/ # Shared widgets
│ └── widgets/
└── features/ # Feature modules
├── onboarding/
├── home/
├── notes/
├── papers/
├── ai_assistant/
├── syllabus/
├── search/
└── settings/
- Framework: Flutter 3.x
- State Management: Riverpod
- Navigation: GoRouter
- Backend: Supabase
- AI: Google Gemini
- Local Storage: Hive
- PDF Viewer: Syncfusion
- Flutter SDK ^3.10.0
- Dart SDK ^3.0.0
- Supabase account
- Google AI Studio API key (for Gemini)
-
Clone the repository:
git clone https://github.com/yourusername/notte.git cd notte -
Install dependencies:
flutter pub get
-
Configure API keys in
lib/core/constants/api_endpoints.dart:static const String supabaseUrl = 'YOUR_SUPABASE_URL'; static const String supabaseAnonKey = 'YOUR_SUPABASE_ANON_KEY'; static const String geminiApiKey = 'YOUR_GEMINI_API_KEY';
-
Set up Supabase:
- Create a new Supabase project
- Run
supabase/schema.sqlin the SQL Editor - Enable Storage and create a
pdfsbucket
-
Run the app:
flutter run
The app uses Supabase with the following tables:
branches- All 24 KTU engineering branchessubjects- Subject catalog with semester mappingnotes- Study materials with module organizationquestion_papers- Previous year paperssyllabus- Module-wise syllabus contentscraping_logs- Content scraping audit trailreview_queue- Manual review workflow
Content is scraped daily via GitHub Actions:
- Scraper runs at 2 AM UTC (7:30 AM IST)
- New content is added to the review queue
- Manual review approves/rejects content
- Published content becomes visible to users
Coming soon
- CLAUDE.md - Comprehensive AI context document for understanding the entire codebase
- docs/SETUP.md - Complete setup guide for development environment
- docs/API.md - API endpoints and data model documentation
- docs/SCRAPER_GUIDE.md - Content scraper configuration guide
- CONTRIBUTING.md - Contribution guidelines
Contributions are welcome! Please read our Contributing Guidelines.
This project is licensed under the MIT License.
- KTU for the curriculum structure
- All content contributors
- Open source community