Inspiration
I remember me and the people around me looking for tutoring help but not knowing where to look and it taking a long time to figure out during which times to schedule.
What it does
It compares the students schedule to KU ACM and ALC tutoring services and gives a table of times during which tutoring is open and the student doesn't have classes. The student specifies which classes they want tutoring for. If the student wants to schedule a time for ALC tutoring they will specify information such as date, time, tutor to schedule that appointment specifically.
How we built it
We used selenium to make an instance of the browser and got the students schedule by logging them in. The program gets information for each class from the schedule table. After that the program navigated to each ALC and ACM. For ACM it selects which class to show a schedule for and then take information from that table, creates a class instance of each and puts it into a list for ACM. ALC is a dynamic website, it requires login so our program enters username/password and select which class tutoring is needed for. Then it searches each table for open time slots, creates a class instance of them, and puts them into a list for ALC. Both ALC and ACM lists are compared to the students schedule and then the times during which there are no classes and tutoring is open is collected. These times are then organized into a pretty table for the user to choose from. If the user chooses ALC tutoring the program schedules an appointment for the student.
Challenges we ran into
Dynamic websites have their HTML change frequently which made it difficult to understand how to extract elements. Learning new modules, unclear HTML, complex selenium functions. Logging student in. Duo is a dual-authentication system and tends to be glitchy or slow Getting tables to properly display for UI Slow wifi
Accomplishments that we're proud of
Learning how to read HTML elements. Handling dynamic websites. Differentiating between elements when they have the same ID/Class/etc Combining code together in a functional and organized manner. Creating friendlier UI.
What we learned
We learned how to work with web automaton selenium. We learned how to read HTML elements. We learned how to automate dynamic (changing/moving) and static (nonmoving) websites. We learned how to extract elements from classes, divs, tables, iframes, etc.
What's next for Tutoring Scheduler Selenium Python
This could expand to other schedulers or other web automation. If somebody wants to schedule a time a restaurant to reserve a similar program could be implemented with different websites. If somebody wants to automatically schedule a meeting that would work for the schedules of multiple people this would do the trick. The point was to learn web automation and use it to eliminate mundane tasks; humanity has come so far, humans should be allocating their time to more meaningful things and have web automation to the small chores.
Log in or sign up for Devpost to join the conversation.