Inspiration
We created CyPlan because Iowa State University's official schedule generator no longer exists, leaving students without an effective tool to manage their classes and registration schedules. We wanted to fill this gap with a user-friendly solution that simplifies course planning for ISU students. Additionally, the negative review of platforms like Workday on campus motivated us to develop something streamlined and accessible.
What it does
CyPlan helps Iowa State students efficiently plan their course schedules. Users can add courses, view available sections, and generate an optimal, non-overlapping weekly schedule. The generated schedule is displayed in a calendar format, making it easy for students to visualize their week at a glance.
How we built it
We began by investigating how course and section data could be retrieved from Iowa State's https://classes.iastate.edu/. Using Inspect Element, we discovered that Iowa State's website uses an internal API to fetch course and section data. This API returns the data as JSON objects, which we integrated into our application. We used Java Spring Boot and Jackson on the backend to retrieve and parse this data dynamically based on user inputs. The front end, built with HTML, CSS, Bootstrap, and FullCalendar.js, provides an intuitive interface for students.
Challenges we ran into
Our biggest challenge was getting data to render correctly on the FullCalendar, as parsing meeting pattern data and integrating it dynamically with user inputs proved difficult. Debugging the frontend-backend communication added complexity, especially when calendar events didn’t display as expected. With all of us new to Spring Boot and one team member new to web development, the learning curve made the process even more challenging.
Accomplishments that we're proud of
We successfully integrated Iowa State's API to fetch departments, courses, and sections dynamically, allowing students to access accurate data easily. We utilized Jackson to parse JSON responses and mapped them seamlessly to our front end using FullCalendar.js for a user-friendly schedule visualization. This demonstrated our ability to create a functional, API-driven application.
What we learned
We successfully set up the API to dynamically fetch departments, courses, and sections. We also integrated the data with our schedule generator and front end to create a seamless student experience. This was also our first time using Spring Boot and one of the group members' first time doing web dev! This experience was a fantastic opportunity to have fun, work on a project collaboratively, and learn new frameworks and technologies.
What's next for CyPlan
We want to explore integrating an AI API to automatically create the best possible schedule for students based on their preferences and constraints. Unfortunately and fortunately after a quick swap of a front end framework we were able to complete the schedule generation.
Built With
- css3
- html5
- https
- iowa-state-course-api
- jackson-databind
- java
- javascript
- springboot
Log in or sign up for Devpost to join the conversation.