- Prod, Staging, Dev and Test Environment Setup: COMPLETE
- Automated build and deploy from github: COMPLETE
- Backend Mongoose CRUID operations built with automated Mocha testing: COMPLETE
- UI: In progress. Is this ever really done? See here.
- Registration and Login via email / password: COMPLETE
Staging Server URL (note that it may take a minute to spin up as this is on their free tier): https://pen-pal-staging.herokuapp.com/
It’s time! For months I have known that I needed to build my own app. More than just building fun apps like twitter clones and the like. But as with anything else in life I wanted to be inspired in order to do it. For a while I have been kicking around an idea that I had and then I finally decided to go for broke and do it. It’s a bit more complicated than that as this also ventures into the “make some money” territory because it will be based on subscriptions. Over the years I have come to realize that passive income should always be a goal:
- Make a site where people will come to create the content and view content that other people have created.
- Get them to pay you money for the service
In my past life I was bestowed the title of “architect” to go along with my senior dev hat. In the software world this is an interesting title because it implies that you are both a master of the technology as well as organization. While I love being the technical go-to guy I am happiest when I am given a task and told to run with it. I love starting at the beginning of a project with no specs and only a vague goal to be accomplished. One of my proudest moments in this area was when I was asked to create and execute a plan for moving an entire environment to the cloud – it has nothing at all to do with making software. Management had identified that I am good at organization and asked me to take on the task (it was a big success!). Anyway, at this point I get all prickly and I go away and think on it for a bit. And then I start writing. LOTS of writing. Why? One of my mottos in life:
Measure many times. Cut once.
So I spent a week mulling over my idea and then I got to writing. Or in this case, creating a spreadsheet:
I wanted to approach this project as if there will be a team working on it. The dev in me wanted to get right to hammering because that’s what devs do. I don’t know what my future holds – maybe I will continue down the path of freelance work, maybe not. I wanted to create a project template that could be re-usable. At some point I plan on taking a course in how to formally do this but for now I’ll go with what has serve me well: trust my instincts and use my intellect to create and logically organize large tasks into smaller tasks.
Ok, enough of the flowery stuff. What am I making? Well, for now I won’t get too much into the details. Maybe I am being paranoid, I don’t know. But I can share some details:
- I will be using the MERN stack (MangoDb, Express, React, Node)
- The application will have three environments (dev, staging and production)
- Every function will have an associated test using Mocha. It’s a good idea but I also don’t have a QA team :-).
- Continuous integration will promote the application to staging / production.
- There will be a subscription / billing component to the application (first through paypal, later on stripe and more).
So that’s where I am at. At this writing I am knee-deep in the project writeup and happier than a pig in… well, you get the idea. I’ll update this as I go along.