Week 1
The first week involved getting to know more about my mentor and the other REU students. I was also familiarized with the Agile methodology as our of way completing tasks.
Summer 2020 DREU Project
The first week involved getting to know more about my mentor and the other REU students. I was also familiarized with the Agile methodology as our of way completing tasks.
Since we know that we’d be using MongoDB as our database, is just now a matter of choosing a language and framework. I have previous experience with Node.js and I know it plays well with MongoDB as JSON is native to both, so I decided to go with Node.js. Node.js is not enough to create a REST API, adding a framework would speed the development process. While I know of Express, I decided to look into other frameworks to see if I can learn something new. However, after looking into other frameworks, I decided that Express would be simple and easy enough to easily develop a prototype while allowing expandability. What I like most about Express is the use of middleware as a way to add simple functionality for the entire web application or for individual routes. I can see myself using middleware in the future to add more features such as authentication.
This week involved setting up unit tests and deployment. For testing, I used Mocha and Chai as they seemed to be the most popular. Creating the tests was a tedious task, but in the end it was satisfying. Seeing tests pass on each change was nice that I did not have to test certain endpoints myself.
This week, there was discussion within my group about whether MongoDB was a good choice for our data. Data from a learning management system is naturally relational and I spent a good amount of time deciding the relations for MongoDB. Since a RDB made more sense in this case, we decided to switch to PostgreSQL. I already made some decent progress on the Express/MongoDB project and I already had some experience working with Express and PostgreSQL together. Some ORMs that support RDBs were frustrating so I decided to switch to another framework entirely. I liked working with a Python web-framework called Flask so I started in the Python area to look for my next framework.
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.
This week, I found a solution to my problem for the project types, and I switched from using Flask’s server-rendering to React.js.
This week, I decided on a UI framework and charting library to use for the frontend. I also implemented basic CRUD for the backend models.
This week involved testing Github webhooks and process data for Recharts to understand.
This week, I focused on deploying gitlytics so that I can test it for an extended period of time.
For the last week of DREU, I worked on my final report and made a list of things to work on in the future.