Week 5 | Changes (cont.)

June 29, 2020

This week I continued to work on the conersion and ensured that all of the endpoints were working correctly. In the week’s REU meeting, I shared with my peers how to work the documentation interface and shared how to get to it.

Since my work was pretty much done for the LMS Data Storge project, my mentor said I would work on something else that interested me. In the first week she mentioned that there was a project that invovled scraping Github repository data and it was somewhat buggy. It was a script that looked for repositories with a specific naming scheme. However, with a specific naming scheme not everyone got it right so it was not able to grab all of the repository data. My mentor mentioned that she would like to revive this project to make it more user friendly. My response to this was to make it so that there was a web interface that allows faculty to create courses and allow students to add the specified repository associated with that class. This way there does not have to be a specific naming scheme for students to follow.

To acheive this, I plan to use Github’s OAuth and have a way for already existing Github users to login to the site. This way I can get information about the logged in user such as all of their repositories. To get data from the repository, I can set up a webhook for the repository so it can send me data whenever a user pushes to the repo.

For this project, I plan to use Flask as I’m familiar with it and there’s easy-to-use OAuth libraries.

I first thought of the database design since I would have to deal with users creating courses, and in those courses could be multiple projects that students can assign repositories to. The tricky part about the design was how to handle groups. Each project can have students working together or individually, or a group of students working on a project individually. I had to somehow wrap all of these use cases into a semi-understandble design so I won’t be too confused.

With that, I know what my focus for next week is.

« Week 4
Week 6 »
Back to blog