Getting our courses after we've requested takes a long time and by automating the process we can get our courses before the end of the previous year and plan over the summer. We were also inspired by the difficulty of switching your classes and that if you get all your hard classes on one day there's nothing you can do because it's so hard to manually switch courses. By automating this process we can make the whole school year more manageable for students.
What it does
There are two parts to our website, a part for students and a part for teachers. You need to use your fcps account to log into either part. In the teacher part, two things can be entered, what teachers teach what courses in what periods and student course requests. (We decided to make student course selection done through the teachers because we felt that it was important student talk to counselors about their courses so this ensures that actually happens.) In the student part, you can view what your schedule is and also request course changes. (When requesting course changes you must also give a reason and that reason must be manually approved before your course is changed.) If the course change is approved then the system finds students that you can swap with (they will still have the same courses just in a different order) and you will have to manually ask them if they are willing to change courses and if they accept then their courses are changed.
How we built it
We utilized AngularJS and HTML/CSS to design the website and connect it to the Ruby on Rails backend. We used SQLite3 to create databases of student, teacher, and class data that the Ruby class objects would use. In the backend, there is an algorithm to automate the course selection system as well as to swap classes.
Challenges we ran into
Finding a way to retrieve and display user data was difficult. We also ran into problems with creating an efficient algorithm to rearrange courses.
Accomplishments that we're proud of
Our website has a responsive design and we managed to fully create an SQL database of all the classes in TJ.
What we learned
Though we did not manage to fully create the web app, we did gain valuable experience in coding in SQL, Ruby, and AngularJS.
What's next for Course Selector
We will fully implement the course selection algorithms as well as user databases and secure login.