This progress report is longer than usual, as it covers the month of exploration prior to the official project kickoff.

Background

Last week, and the time leading up to the start of the course, I explored different project ideas with a focus on the intersection of what interests me most, building software tools for small businesses and aligning them with the skills and technologies commonly listed in job postings from companies I’m targeting. Thinking about some of my friends who run creative content companies (videographers, photographers and similar small businesses) I started to lean towards a CRM and project management suite to help create a workflow from leads to clients to projects to deliverables and paid invoices. The focus was on increasing clients and cash flow, a typical problem for small businesses starting out. To match job postings from target companies, I decided it would be a full stack application with a SQL database, React + Typescript front end, and possibly a C# back end (to target one specific company) or a backend framework I am familiar with such as Python or Node.js. In addition, I wanted to use professional tools I am not yet familiar with such as CI/CD pipeline, unit tests, containers, observability tools such as logging and network traffic analysis.

Finding a User

After going back and forth on how to design the application, I reached out to a friend who owns a video production company producing several dozen promotional videos per year. I shared my ideas and he responded with positive feedback. We discussed how he currently manages his company. He uses a Trello board to keep track of the progress of all his clients and projects and he uses Google Sheets to manage company financials as well as communicate with his clients and video editors. He even calls these sheets “dashboards.” After evaluating different application ideas I decided on converting his tools (and dashboards) for managing his company into a single database with different front end interfaces based on user permissions and objectives. My friend agreed to provide feedback throughout the process. I decided to shelve the marketing and CRM aspects of the application and just focus on project management for videos with different users.

More Recently

I started the process of designing a database, writing user stories, and describing different views that users will interact with. My intention is to work out some of the kinks of my project on paper before attempting to build it. In addition to building the project, my plan is to follow the open source course called Full Stack Open to help refresh my knowledge of React and building full stack applications while integrating tools I’m less familiar with to broaden my skill set. In the past week I also got to know blogging with Jekyll and I am really excited to document my progress.

Next Steps

This week I am working on the project proposal for the course and continue to polish my design for the app. As for impediments, one ongoing challenge is managing the scope of the project. To help mitigate, I have a few different thresholds for stretch goals. One stretch goal is to provide a way for a user to create template to do lists (and other entities) for projects. In addition, I’m also working to reduce the front end to its essential components in order to keep the scope manageable.

Reflection

My biggest takeaway so far is how quickly the project crystallized after discussing it with a potential user.