It is time consuming and tedious to plan your weekly schedule if you have to manually enter in every class, discussion, lab hours etc for each and every one of them.
Goal: Design a Web App that can automate/simplify this task.
What it does
1. User uploads a screenshot of their schedule on Webreg and uploads it to our website which is then posted onto our server.
2. The example image is then fed into AWS's pre-trained model, _ Textract _. We are specifically using the API's AnalyzeDocument feature to extract key-value pairs, and export the Block data to a CSV file. This allows us to effectively parse the document for tables.
3. Use Google's OAuth 2.0 API to authenticate the user and create an access token so the program can modify the user's calendar.
4. Use the schedule data in the CSV file that the model outputted and Google's Calendar API to create recurring class/dicussion/lab hour events on Google Calendar.
How we built it
Front End: Front-end development was built exclusively using HTML and CSS
Back End: Server-side communication was developed in Python with the Werkzeug WSGI web application library, and the Flask web application framework. Textract's table parsing code was also implemented here to work as soon as the user uploaded their schedule file. Lastly, Google API works on the CSV file internally to modify the user's google calendar.
Challenges we ran into
Due to time constraints, we decided to submit a locally hosted version of our project rather than focus on our website deployment. For this reason we used AWS scripts in local python rather than using S3 and Lambda functions
Instead, we only used the features of Textract that we actually needed which the AnalyzeDocument function to extract table data and export it as a CSV file. This was simple enough to implement directly into our back-end without having to use AWS's cloud services.
Our Heroku Deployment is still problematic, however it works when the server is locally hosted.
Accomplishments that we're proud of
We're proud of our simple, light-weight design that is quick and easy to use. After the user is authenticated, creating the events in Google calendar takes a matter of seconds before the whole quarter's weekly schedule is populated. We are also proud of the utility of our program as UCSD students will be able to get immediate use out of it.
What we learned
1. How to use Amazon web services's pre-trained models to easily and effectively accomplish tasks
2. Full-stack web development
3. Web deployment with Heroku
What's next for Auto-Schedule
While Auto-Schedule is completely usable in it's current state, we could enhance security by implementing TLS to protect user's schedule data while it is being sent to the server.
In the long run, creating a chrome extension could make the process even faster by bypassing the first step and automatically extracting the necessary data at the click of a button instead of having to download and upload a pdf of one's schedule.
Finally, due to the flexibilty of AWS's machine learning system, the website could be expanded to work beyond webreg, and make it so a variety of schedules are able to be be automatically put on google calendar.