Your AI-powered academic calendar assistant
Syllabize helps students stay organized by automatically extracting key dates (assignments, exams, readings) from course syllabi and populating their digital calendar with reminders and deadlines.
This project consists of two main components:
- NLP_AI_reader.py - Python backend for PDF parsing and keyword extraction
- SyllabizePrototype2.dart - Flutter mobile application frontend
Python script that uses PyMuPDF to extract text and tables from PDF syllabus files, identifying key information through keyword matching.
- Text Extraction: Searches entire PDF for lines containing specified keywords
- Table Detection: Identifies tables within PDFs and extracts rows where keywords appear in any cell
- Keyword Matching: Case-insensitive keyword search across both regular text and table data
- Structured Output: Returns page numbers, line/row content, and table indices
pip install PyMuPDF# Define your keywords
keywords = ["assignment", "exam", "due date", "midterm", "quiz"]
# Specify PDF path
pdf_file = "syllabus.pdf"
# Extract lines with keywords
matched_lines = extract_lines_with_keywords(pdf_file, keywords)
# Extract table rows with keywords
table_results = extract_table_rows_with_keywords(pdf_file, keywords)Extracts full text lines containing any of the specified keywords.
Returns: List of tuples (page_number, line_text)
Detects tables and extracts entire rows when keywords are found in any cell.
Returns: List of tuples (page_number, table_index, row_data)
EXTRACTING LINES WITH KEYWORDS
==============================================================
Found 3 matching lines:
Page 2: Assignment 1 due October 15th
Page 3: Midterm exam scheduled for November 3rd
Page 5: Final project submission deadline: December 10th
EXTRACTING TABLE ROWS WITH KEYWORDS
==============================================================
Found 2 matching table rows:
Page 4, Table 1:
Row: Week 5 | October 15 | Assignment 1 Due | 20% of grade
Page 4, Table 1:
Row: Week 8 | November 3 | Midterm Exam | Chapters 1-5
Flutter mobile application providing a user-friendly interface for syllabus upload, event review, and calendar synchronization.
- Welcome screen with app branding
- Feature highlights (Upload, AI Extraction, Calendar Sync)
- Get Started and Sign In buttons
- Drag-and-drop syllabus upload interface
- Supports PDF, DOCX, and TXT formats
- File picker integration
- Display AI-extracted events (assignments, exams, readings)
- Color-coded event types:
- π΄ Exams (Red)
- π Assignments (Orange)
- π’ Readings (Green)
- Checkbox selection for events to sync
- Edit functionality for individual events
- "Sync All" button for calendar integration
- Upcoming deadlines with countdown
- Course overview with task counts
- Quick access to all activities
- Calendar integration options (Google, Outlook, Apple)
- Notification preferences
- Reminder customization
- Version and privacy information
- Flutter SDK (3.0+)
- Dart 3.0+
- Android Studio or Xcode
# Clone repository
git clone https://github.com/yourusername/syllabize.git
cd syllabize
# Install dependencies
flutter pub get
# Run the app
flutter runLandingPage
β
HomeScreen (Bottom Navigation)
βββ UploadScreen β ReviewScreen
βββ DashboardScreen
βββ SettingsScreen
Sample Event Data Structure:
{
'title': 'Essay 1: Critical Analysis',
'date': DateTime(2025, 10, 15),
'type': 'Assignment',
'description': '5-7 pages on selected topic',
'selected': true,
}βββββββββββββββββββββββ
β Flutter App (UI) β
β SyllabizePrototype β
ββββββββββββ¬βββββββββββ
β
β File Upload
β
βββββββββββββββββββββββ
β Backend API β
β (To be built) β
ββββββββββββ¬βββββββββββ
β
β PDF Processing
β
βββββββββββββββββββββββ
β NLP_AI_reader.py β
β PyMuPDF + Keywords β
ββββββββββββ¬βββββββββββ
β
β Extracted Data
β
βββββββββββββββββββββββ
β Calendar APIs β
β Google/Outlook/ β
β Apple Calendar β
βββββββββββββββββββββββ
# Edit keywords in NLP_AI_reader.py
keywords = ["assignment", "exam", "quiz", "project"]
# Run the script
python NLP_AI_reader.py# Start the app
flutter run
# Or for specific platform
flutter run -d ios # iOS
flutter run -d android # Android
flutter run -d chrome # Web (testing)- Python PDF parser with keyword extraction
- Table detection and row extraction
- Flutter UI with all screens
- Landing page and navigation
- Backend API development (Flask/FastAPI)
- Connect Flutter to Python backend
- Advanced NLP for date parsing
- Event type classification
- Course name detection
- Assignment weight extraction
- Google Calendar API
- Microsoft Outlook API
- Apple Calendar sync
- iCal export option
- File upload functionality
- Push notifications
- Progress tracking
- Multi-course management
- Cloud storage integration
Backend:
- Python 3.8+
- PyMuPDF (fitz) for PDF processing
- Future: Flask/FastAPI for REST API
Frontend:
- Flutter 3.0+
- Material Design 3
- Dart 3.0+
APIs (Planned):
- Google Calendar API
- Microsoft Graph API (Outlook)
- Apple Calendar
syllabize/
βββ NLP_AI_reader.py # Backend PDF parser
βββ SyllabizePrototype2.dart # Flutter app
βββ README.md # This file
βββ (future)
βββ backend/
β βββ api/
β βββ models/
β βββ services/
βββ frontend/
βββ lib/
βββ assets/
βββ test/
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Secure file handling with automatic deletion after processing
- No permanent storage of syllabus content
- Calendar access only with explicit user permission
- Data encryption in transit
- Local processing when possible
This project is licensed under the MIT License.
For questions or support, please open an issue on GitHub
Made with β€οΈ for students by students