Today marks the end of our first Sprint from Oct 10 – Oct 23 for the CS467 Online Capstone Project. Our team will be starting Sprint B (Oct 24 – Nov 6) starting tomorrow where our Sprint Goal is to complete implementation of the Donations API and Teacher Dashboard and Donation UI components.
These past two weeks were a great learning experience. Once we got into the groove of things, we were well on our way completing issues on Jira. Out of all the tasks we needed to complete, creating a test suite was the most difficult. Initially we tried using Jest as our testing framework for the back-end services since that is what the React app uses as their testing suite. However, we ran into an issue where Jest did not play nice with our ES6 modules implementation of our back-end services. I decided to try Mocha instead along with Chai as the assertion library and Supertest for testing of endpoints. The implementation was much easier and I was able to get passing test cases for the Teacher database model and its integration with the API endpoints. Below is an example where I tested the POST /auth/signup endpoint.
The first test case is for when a user successfully signs up for an account, the test expects that the POST route responds with a token property included in the response body. The second test case expects that the Http Status Code 400 is returned since email is a required property when signing up a new user.
Before these tests are ran, the testing framework needs to connect to the MongoDB database and clear out the database after the testing suite is completed so that we don’t have unwanted data in there after the tests. A setupDb function was created to do just this before the test suites.
There is much to learn and implement but so far our team is off to a great start. During this sprint, I’ll be focusing on expanding the integration and unit tests for critical scenarios and API endpoints in addition to implementing the remaining entity models and controller code.
Today marks the beginning of the first Sprint for my CS467 Online Capstone project with my teammates. I’m in a group with two other students who I have worked with before in the Software Engineering II course. Having already been in a group with each other is great since we know what our strengths and weaknesses are. Everyone is responsive and responsible which is very fortunate since I have been in bad groups, finishing up my final term at OSU with this amazing group will make the journey to graduation pleasant.
For our Online Capstone project, we chose to develop a Teacher Supply Donation Web Application. This was an idea proposed by one of my teammates who has been working in education. Here is a little background regarding the idea and the purpose of the Web App as stated in our Project Plan:
In the US K-12 education system, school budgets are often insufficient to cover classroom supplies that teachers need to conduct the activities that would most facilitate student learning. As a result, many teachers compensate by buying supplies themselves or seeking donations from students and their families. To help make this donation process convenient and efficient for both teachers and students, our team will develop a full stack web application that allows teachers to register supply request lists and allows students to make donation commitments. It also allows both teacher and student users to monitor and update donation activity. We feel this is a significant contribution in that many similar classroom donation websites (e.g. DonorsChoose, AdoptAClassroom) are focused on monetary contributions and require that teachers invest much time in the application process. In contrast, our concept offers a simple tool for teachers so that they are able to efficiently request classroom supplies with much less time and effort on the part of the teacher.
We’ll be developing the project throughout four, 2-week sprints. We have decided on the MERN stack since that seems to be the tech stack where everyone has the most experience developing with.
As shown in the system design diagram above, there will be two types of users. A Teacher will be able to log into the application to create a list of supplies that they would like to have students donate. Students will be directed to a Teacher’s donation list via an email link or by entering a unique identifier to take them to the correct page on the website, where they can then submit what items they want to donate from the list curated by the Teacher.
For the next 2 weeks of our first sprint, we’ll mainly be focusing on creating the data models for MongoDB, setting up our environment, prototyping the UI and design of the web application, and implementing the landing page and user login/authentication. I’m extremely excited to get started working on the project and look forward to seeing what the final outcome will be. Stay tuned for more updates in the following weeks!