Inspiration
When it comes time to choose classes, referencing degree-works can be confusing and difficult to decipher. We wanted to develop a better solution to help students better understand the different choices they have when it comes to choosing their classes. SWA empowers students to seamlessly navigate their academic journey, offering a clear visualization of course paths, real-time updates from educational catalogs, and personalized chatbot guidance. Committed to compatibility and scalability, our vision is to revolutionize how universities and students communicate and plan for academic success.
What it does
Our solution allows students to visualize their course to graduation. We also provide students with a chatbot to help them better understand the classes and what might be the best course of action for them. In addition, this aims to help not only students but also colleges to better communicate their current catalog years timely since SWA craws the internet looking for new legitimate catalogs and updates it in real time. Finally, It is platform independent so regardless of the centralize tool any university is using, SWA is meant to be compatible.
How we built it
The first thing that we made sure to establish between the team was what exactly the website was going to look like. From there, we were able to work backward to establish how exactly we wanted to accomplish this. Our front end was done using react and our back end was accomplished with node.js. To accomplish our main feature, the flow graph of classes, we utilized the react flow library as it most aligned with our goals. The application was built with react, nodejs, and python(for APIs and crawlers). This environment and set up are meant to be deploy on demand thus, SWA is meant to be compatible with high scalability services such as beanstalk.
Challenges we ran into
During the development process, we encountered several challenges. First and foremost, we had limited experience with AWS Elastic Beanstalk, which required a learning curve for our team. Additionally, the task of crawling for files and automating the pipeline presented a significant hurdle. We tackled this by employing a combination of Large Language Models (LLMs) and regular expressions to decipher dependencies. Another challenge we encountered was devising a clear and user-friendly concept to represent a spanning tree that would illustrate one of the potential paths a student could follow. Striking the right balance between simplicity and complexity was crucial to ensure ease of use for our users.
Accomplishments that we're proud of
At the outset of this project, several team members had limited experience with React. Therefore, a significant achievement for our entire team was successfully implementing the course visualization feature. To accomplish this, we had to ensure the smooth functioning of React Flow Map and proper parsing of our sample data into a readable format. Additionally, setting up the Continuous Integration/Continuous Deployment (CI/CD) pipeline, complete with a registered domain, and SSL integration, posed a challenge. Given our relative unfamiliarity with frameworks like React, we had to rapidly overcome these hurdles to achieve our goals.
What we learned
Through the development of this project, we learned how to use react in conjunction with node.js. Another major aspect that was stressed during this project was the importance of effective teamwork and communication in meeting tight deadlines. When we ran into issues we quickly realized that by openly sharing our individual insights and proposed solutions, we were able to pool our collective knowledge and find a resolution faster than if we had worked independently. It highlighted the importance of regular check-ins, status updates, and setting realistic expectations to ensure that everyone was aligned with project goals and timelines. Ultimately, this lesson has underscored that teamwork and communication are the cornerstone of a project's success, particularly when working within tight timeframes.
What's next for SWA
Next, we plan on adding functionality for the whole curriculum of GMU, with the end goal of making this expandable for any university to use. In its final form, we would like to be able to separate the major requirements from the core classes that students need to take and display them separately. To further enhance user experience, we plan to have badges that can be added to the user's profile to display aspects like "completed all math requirements" and "completed Mason core". Overall, we would also like to clean up the UI for a more polished and user-friendly look and feel.
Log in or sign up for Devpost to join the conversation.