#Intro
For this project, I experimented with several technologies that were new to me. I had barely looked into React or Redux, and my experience with Node servers and MongoDB was minimal. Many of the issues I ran into were a result of this inexperience, and I learned a lot from this.
#What Went Well
- The technologies work together: Despite working with so many new technologies, I was able to make them all integrate together. Getting the server to work in the front-end was particularly challenging, as I had never had to work with a single-page application. It was a challenging problem but I learned a lot by solving it.
- Coming up with a Minimum Viable Product: I had a lot of ideas for what I could do with this product and where I could take it. However, the core of my idea was always to have a simple drawing app where users could host and share their drawings. When I noticed certain aspects of the project going overscope, I at least had that basic app to fall back on.
#What Went Wrong
- Overscoped and Under-Planned: This was probably the biggest issue. I failed to account for how much time New Media Team Project and my job would take up in relation to this project. I may have been able to do this, but I would have had to have planned better. Having the three deliverables helped, but I should have kept to a tighter personal schedule.
- Didn't Adhere to Schedule: When I layed out my original schedule, I didn't account for the MVC Project and having to have my project meet those requirements. I only realized this later, but I didn't adequately reasses this schedule, so my plans fell apart.
- Neglected the Server: Because I was learning so much about front-end development with React, the design of the back-end suffered. It's functional, but in a lot of ways it wasn't very well thought out, which led to some difficulties later on.
- Unit Tests Implemented Later: Unit Tests are easier when you write them with the component you are coding. One problem I had was that I focused early on getting the project up and running, and neglected to write tests. When I went back to write them, it was very difficult.
#What Will I Do Going Forward
- Come Up with a Schedule and Assess It as the Project Goes On: Having a schedule is important, but it doesn't do much if you don't adhere to it, or discover you can't adhere to it. In the future, I'll make a schedule (one that incorporates all of my projects) and check in on them weekly.
- Determine the MVP: Knowing the core functionality of my app was really helpful to me with this project. It allowed me to rescope when I needed to. This is something that I would like to keep going forward
- Implement Tests as I Go: writing unit tests as I go will make sure that my code is more testable.
- Have a clearly defined API for the Server: This would have helped me implement features on the server. It would give me a good idea of what the responsibilities of each unit were, and where I could add features.