So, week 1 of the 50onRed has so far been a major success. I have been learning a ton, and have been truly enjoying the work. For the most part, I’ve been working on a Slack integration that I will be writing about in the future.
This week, I wanted to write about the great experience I’ve had so far working with CodeForPhilly.
At the end of April, I was kind of at an odd point in my coding journey. I had just gotten hired into the RedLabs internship, but had a whole month before it would begin. I was still working on Hangify, but work on the project was slowing down, as the semester at Penn was wrapping up. I had long wanted to go to a CodeForPhilly meet-up, but was worried that I wouldn’t know enough to be able to contribute. I decided I was ready to give it a try, and registered for their final weekly meeting in April.
I happened to join on a busy night with a lot of newcomers, so it was nice to not be the only new person there. Soon after I got there, introductions began. This process, which happens at every meeting, involves everyone introducing themselves, their day job, background, and what projects they are working on. It’s also an opportunity for project leaders to ask for help.
One of the project leaders that spoke was working on bootstrapping an app called Yadaguru. The app is geared to high school students who are planning on going to college. Students enter the name of their prospective college or university, along with the application submission deadline, and the app generates a list of tasks to complete, organized by due date. Tasks include items like registering for the SATs, requesting transcripts, and submitting essays, to name a few.
Being that my background (and current occupation at the time of this meeting) was education, I thought this would be a good fit. I was also interested in building a product from the ground up, and this project would provide me with that opportunity. So, I approached the project leader to offer help. Another developer (with much more experience than I) also joined the project. After some discussion about what the app needed to do, we got to work.
This first meeting was very overwhelming. This was the first time I would be setting up a project while working in a team environment, so I wanted to make sure I did things the right way. I had also never really done an Angular project from the start, so I made a lot of beginner mistakes that ended up taking a lot of time. At the end of the night I had barely anything done.
So, I took the next couple of evenings to sort things out on my own. I added Gulp to handle tasks and live page reloads. I got to better understand the structure of an Angular app as I continued work on the front end.
During the next meeting, we tackled the data model. Our schema relies on a collection of “reminders,” which have messages and a time frame associated with them. We used Node Mongo Seeds to generate some test data.
With the test data in place, I was able to fully build out the front end. I had my first introduction to Bootstrap, which is awesome. Meanwhile, my partner worked on building API endpoints to access the data. Before long, we had a product that we could use for testing and feedback.
At the most recent meeting, we had a high school guidance counselor join our team and provide feedback. Based on this feedback, we will be restructuring portions of the app, and making some changes to the front end and our models. We are also going to be building an admin panel to allow the non-coding members of our team to edit content. We will basically be building a lightweight custom CMS for the app.
My most recent work has focused on that. The original app only had one view. With the addition of the admin panel we now have multiple nested views. To facilitate this, I chose to use the angular-ui-router library. Right now I have my routes set up. I also started to flesh out the UI of the admin panel using Bootstrap components.
I definitely have my work cut out for me. We’d like to have the admin panel in place by the end of the month, and I think that should be attainable.
As always, I am loving the learning process as I go through building the app. I’ve also really enjoyed the camaraderie of building with others at the CodeForPhilly meetings.
Once our MVP is live, I’ll share a link here. In the meantime, you can check out our repo on GitHub.