A study review app that helps students prime their minds for effective study sessions, identify knowledge gaps, and track confidence in exam topics.
Creator: Cesar A. Herrera
Student ID: 909712718
Course: CSC 680 - iOS Application Development
Instructor: Axel Ancona Esselman
Institution: San Francisco State University
Semester: Spring 2025
ReviewLoop is designed to help students maximize the effectiveness of their study sessions by leveraging active recall and self-reflection. After an initial lecture or study session, students log key topics, exam dates, and create personalized short-answer prompts to prime their memory for future reviews. When it's time to study, students can access these prompts in ReviewLoop to mentally recall information and identify knowledge gaps. The app encourages users to reflect on each prompt, then set their phone aside and study the source material to fill in any gaps. By tracking confidence levels across topics, students can strategically allocate their study time and approach exams with greater self-awareness and preparation.
- IDE: Xcode
- Programming Language: Swift
- UI Framework: SwiftUI
- Data Persistence: SwiftData
- Source Control: GitHub
- Topic Logging: Enter the name of the topic and exam date after a lecture or study session.
- Custom Prompts: Create short-answer prompts/questions to prime your mind for future study sessions.
- Review Table: View all topics, exam dates, and track confidence ratings in one place.
- Active Recall Workflow: Begin a study session by reviewing your custom prompts and reflecting on your knowledge (answers are not entered in the app).
- Guided Study: The app encourages you to put down your phone and focus on filling knowledge gaps with source material.
- Confidence Tracking: After each session, rate your confidence (Low, Medium, High) for each topic.
- Sorting & Filtering: Sort or filter the review table by exam date, topic, or confidence level.
- Flashcards Mode: Automatically generate flashcards from your prompts for rapid review.
- Reminders & Notifications: Get reminders to review topics as exam dates approach or based on confidence ratings.
- Progress Analytics: Visualize your confidence trends and study frequency with charts.
- Cloud Sync: Sync your data across multiple devices.
- Collaboration: Share prompts and topics with classmates or study groups.
- Automatic Theme Switching: App theme (light/dark) automatically adapts to system settings for a seamless experience.
- Tagging/Categorization: Add tags to topics for better organization (e.g., "Biology", "Math", "Lecture 1").
Below are the key hand-drawn wireframes representing the main user flows.
Feature | Estimated Hours |
---|---|
Topic Logging UI (SwiftUI) | 4 |
Custom Prompt Creation (SwiftUI) | 3 |
Review Table Display (SwiftUI) | 5 |
Active Recall Workflow (SwiftUI) | 6 |
Confidence Tracking & Rating | 3 |
Guided Study Flow | 4 |
Data Persistence (SwiftData) | 5 |
Basic App Navigation (SwiftUI) | 2 |
Total Estimated Hours: 32
- Core navigation between all major screens is functional.
- Data model for topics, prompts, exam dates, and confidence ratings is implemented using SwiftData.
- Users can add topics and prompts, and view them in a basic table.
- Confidence rating and guided study flows are present but visually unstyled.
- Data persists locally between app launches.
- Source control managed via GitHub with regular commits.
Note:
At this stage, the app's UI is unpolished and uses many default SwiftUI components and colors. The focus was on implementing the main workflows and ensuring the data model and navigation work correctly.
Below are screenshots of the functional prototype, as captured from Xcode's SwiftUI preview.
- All must-have features have been implemented.
- The app allows users to log topics, create prompts, review topics, reflect on knowledge gaps, and rate their confidence.
- The UI is visually polished and consistent, with improved layout, color scheme, and typography.
- Most app colors are defined in
Assets.xcassets
as named colors for color consistency in this version. - Data persists between app launches using SwiftData.
- Source code is organized and versioned using GitHub.
- The project follows a standard MVVM structure, with separate folders for Models, Views, ViewModels, and reusable Components.
Below are screenshots of the completed app, showcasing the final UI and user experience.
- All must-have features implemented
- Final UI screenshots included in README
- Codebase is well-documented and organized
- README finalized with complete details
- GitHub repository link submitted to Canvas