Project Info
Inspiration
UCSC's provided 4-year course planning template is not helpful. Trying to find and understand all of the information required to build a simply livable schedule takes far more work than it should. The need to navigate multiple tabs to access course prerequisites, manually track fulfilled requirements and earned credits, and potentially schedule advisor meetings for unresolved issues adds unnecessary complexity. UCSC Made Easy does just that, it makes the whole process easy.
What it does
UCSC Made Easy allows you to input your courses from all 4+ years of your education, and it will automatically serve you all of the necessary information such as course information and links, major requirement satisfaction, general education requirement satisfaction, and your total credit count.
How we built it
The foundation of this project is its data, with information on 10k+ courses and major requirements from UCSC. Using React and Tailwind CSS we crafted a user-friendly interface designed to make course planning easy for anyone. Our Flask backend efficiently stores users' plans in the MySQL database under a UUID, eliminating the need for unnecessary engagement like logging in.
Challenges we ran into
Web scraping proved challenging and time-consuming, and the management of a substantial list of courses across many user inputs posed latency challenges.
Accomplishments we're proud of
We are very proud of our UI. Both of us have an interest in design and wanted to see how well we could do, and we are content with this result.
What we learned
With each React project, we gain increased comfort in handling intricate components, and this endeavor, in particular, presented the most dynamic elements to manage. Additionally, our introduction to Tailwind was great, and we are pleased to have discovered it.
What's next
Refining the application to be good enough for serious use. More web scraping and ensuring that data is accurate, polishing the UI to be as smooth as possible, and hopefully getting in touch with the school to share this platform and help students.
UCSC Made Easy
Motivation
UCSC's provided course planning tools are unhelpful and leave many students without the knowledge needed for successful course planning. This app brings all necessary information into one place to make the process of course planning fast and intuitive for students unfamiliar with their requirements.
Features
- Accurate course info for all 4000+ courses (ge fulfillment, credits, prerequisites, link, etc)
- Other credits accounted for such as AP exams, test outs, etc
- Major requirements for all majors across different catalog years
- Real-time requirement and prerequisite satisfaction check
- Downloading your plan as a pdf
- Store user plans in database to be reloaded upon return
How to run
Visit the app on the web here
To run locally,
Clone both the front-end and back-end repos
git clone https://github.com/waylonwilliams/ucsc-made-easy-backend.git
git clone https://github.com/nhi1e/ucsc-made-easy-frontend.git
In one terminal, navigate to the front-end repo and run
npm i
npm run dev
In a new terminal, navigate to the back-end repo and run
docker build -t course-planner .
docker run -it -p 5000:8080 course-planner
Or, if you don't have Docker
pip install -r requirements.txt
flask run
Analysis
View
Metric
- 26
- 25
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
- HTMLIn code
- JavaScriptIn code
- ReactIn code
- Tailwind CSSIn code
- FlaskClaimed
- PythonClaimed
5 of 7 appear in the indexed code. 2 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
190 KB
Source files
33
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
nhi1e/ucsc-made-easy-frontend
48 files · 426 KB · @ 5ab832d
Structure
Interface
20 files · 42%Screens, components and styles rendered to the user.
Application logic
9 files · 19%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
- JavaScript99%
- Markdown1%
- HTML0%
- CSS0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm · 18- jspdf
- react
- react-dom
- react-select
- react-toastify
- uuid
- +12 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.