Presentation slides: https://docs.google.com/presentation/d/18canBrp3pQwd7SYneYI0OH1R9T0T_DX1/edit?slide=id.p1#slide=id.p1
AidLearn is an AI-powered study platform that transforms uploaded course materials (PDFs such as lecture slides, readings, and textbooks) into structured learning resources. Using the Google Gemini API, the system generates notes, flashcards, and tests, which are saved locally and displayed within each course’s workspace.
- Upload PDF files for AI processing
- Automatic extraction and generation of study materials
- Generate structured notes, flashcards, and timed tests
- View history of previously generated materials
- Manage courses (create, edit, delete)
- Clean Architecture design with separate layers for UI, use cases, data access
As a user, I want to see a list of my courses on the Courses Homepage and open a course’s workspace so that I can access uploads, notes, flashcards, and tests.
As a user, I want to have lecture notes generated based on uploaded course material.
As a user, I want to have flashcards automatically generated based on my uploaded course materials.
As a user, I want to have timed tests (short-answer + MCQ) generated based on uploaded course material.
As a user, I want to upload and delete files that guide learning, and view existing uploads.
As a user, I want to view existing generated notes, flashcards, and tests.
Lead: Shirley Zhang
Main Flow:
- User sees a Courses Homepage with all enrolled/created courses
- User may add, edit, or delete a course
- User opens a Course Workspace
- Workspace includes navigation to uploads, notes, flashcards, and tests
Alternate Flow:
- No courses → “Create New Course”
- No uploads → disable generation features
Lead: Peiyu Yu
Main Flow:
- User clicks Generate Notes
- User enters a topic
- Notes are generated and displayed in a structured format
- User can edit, highlight, or save the notes
Alternate Flow:
- API failure → “Lecture notes generation failed. Please try again later.”
Lead: Wenle Zeng
Main Flow:
- User clicks Generate Flashcards
- User enters a topic
- Flashcards are automatically generated
- User flips cards between question/answer
- User cycles through all cards
Alternate Flow:
- API failure → “Flashcard generation failed. Please try again later.”
Lead: Jace Mu
Main Flow:
- User clicks Generate Tests
- User enters a topic and chooses a test duration
- System generates MCQ, short-answer, and essay questions
- User takes the test and submits answers
- System displays score, corrections, and feedback
Alternate Flow:
- API failure → “Test generation failed. Please try again later.”
Lead: Soumil Nag
Main Flow:
- User enters the Uploads page
- User uploads PDF(s)
- User deletes existing uploads
Alternate Flow:
- No files uploaded → “No files available”
Lead: Iain Campbell
Main Flow:
- User views historical notes, flashcards, or tests
- Items include date, time, and course labels
- Tests include scores
Alternate Flow:
- No history → “This page is empty”
AidLearn follows Clean Architecture, consisting of:
-
Entities:
Course, UploadedFile, GeneratedContent (notes, flashcards, tests) -
Use Cases:
Business logic for course management, content generation, uploads, and history -
Interface Adapters:
Controllers, Presenters, ViewModels, and local repositories -
Framework/UI Layer:
Java Swing UI and local file handling
Integration with Google Gemini API
This architecture ensures testability, modularity, and easy future extensions.
API: Google Gemini Generative Language API
Docs: https://ai.google.dev
Main Service Provided: Given a topic + timeframe, generates a structured JSON lesson plan (summaries, readings, practice prompts); can reformat/edit lessons.
Features Used:
- Summaries
- Structured lecture notes
- Flashcards
- Quizzes & tests
- JSON formatted responses
Processing Flow:
- User uploads PDF
- System extracts text
- System builds a prompt including topic + extracted content
- Gemini generates JSON study materials
- Output saved locally
- UI displays final results


