Project Info
This project did not submit a demo video on Devpost.
Inspiration
Enrolling for classes at UCSC can be tedious and unintuitive. For instance, checking class eligibility or identifying scheduling conflicts often requires extra steps, making the process frustrating. We wanted to create a user-friendly and intuitive application that simplifies scheduling and enhances the overall experience for students.
What it does
Slug Scheduler analyzes your transcript and recommends classes to take for the next quarter based on the current course offerings.
How we built it
We used Next.js as the main framework and designed the interface using Figma. The project was powered by JavaScript, the npm package manager, and the GEMINI API for transcript analysis.
Challenges we ran into
Time management and task prioritization were significant challenges. We underestimated the complexity of certain tasks, which slowed down progress. Additionally, maintaining consistent productivity over extended periods proved difficult as fatigue set in.
Accomplishments we're proud of
We successfully built a web scraper capable of gathering comprehensive course data for a specific quarter. This includes course names, timings, enrollment numbers, and available slots, providing students with up-to-date and accurate information.
What we learned
We learned the importance of researching and familiarizing ourselves with the technologies we plan to use beforehand. For example, not deciding on a component library or CSS framework early on led to inefficiencies, with only one team member handling the frontend.
What's next
for Slug Scheduler We aim to add features like exporting schedules to Google Calendar for improved usability. Additionally, we plan to integrate Rate My Professor ratings to recommend courses based on professor reviews, helping students make more informed decisions.
Slug Scheduler
A smart scheduling assistant for UC Santa Cruz students that creates recommended class schedules in minutes. Upload your transcript to analyze academic progress, generate schedules based on major requirements, and visualize your courses in an interactive calendar interface!
🎯 Features
- PDF Transcript Analysis: Upload your academic transcript to automatically analyze your academic progress
- Smart Schedule Generation: Creates optimized class schedules based on your major requirements
- Interactive Calendar: Visualize and modify your class schedule with an intuitive drag-and-drop interface
- Major Requirements Integration: Automatically checks degree requirements against UCSC's course catalog
- Web Scraping: Pulls course data from UCSC's class search and major websites
📸 Screenshots
Friendly landing page for users to upload their university transcript
Calendar view with course recommendations for easy scheduling
🚀 Tech Stack
- Framework: Next.js 15.3.0
- UI Components:
- DND Kit for drag-and-drop functionality
- Tailwind CSS for styling
- AI Integration: Google's Gemini AI API for transcript analysis
- PDF Processing: PDF.js for transcript parsing
🛠️ Installation
- Clone the repository:
git clone https://github.com/charlesphu/slugscheduler.git
- Install dependencies:
npm install
- Create a
.env.localfile and add your Gemini API key:
GEMINI_API_KEY="your-api-key"
- Start the development server:
npm run dev
- Open http://localhost:3000 in your browser
💻 Development
npm run dev: Starts development server with Turbopacknpm run build: Creates production build
🙏 Acknowledgments
The Team:
- Andy Kuang - Frontend & UX Design
- Charles Phu - Backend & Webscraper
- Ashwin Vinod - Backend & Gemini
- Alaaddin Ghosheh - Backend & Gemini
Special thanks to the CruzHacks 2025 organizing team for hosting an amazing hackathon that made this project possible
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Analysis
View
Metric
- 70
- 34
- 12
- 8
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- JavaScriptIn code
- Next.jsIn code
- ReactIn code
- Tailwind CSSIn code
- Google GeminiClaimed
5 of 6 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
48 KB
Source files
25
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
charlesphu/slugscheduler
46 files · 1.2 MB · @ 038beb8
Structure
Interface
17 files · 37%Screens, components and styles rendered to the user.
API & routing
6 files · 13%Request entry points: routes, handlers and controllers.
Application logic
1 file · 2%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- JavaScript94%
- Markdown5%
- CSS2%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm · 26- @dnd-kit/core
- @fullcalendar/core
- @fullcalendar/daygrid
- @fullcalendar/interaction
- @fullcalendar/react
- @fullcalendar/timegrid
- @google/genai
- axios
- canvas
- cheerio
- fs
- head
- next
- pdfjs-dist
- postcss
- react
- react-dom
- react-dropzone
- +8 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.