8
0 Comments

Open SaaS development from scratch, Day 4: database models, database update, and a couple of new wireframe pages

This is the fourth episode in the reality show about the development SaaS app from scratch. The previous episodes:

Open SaaS development from scratch: why and what
Open SaaS development from scratch: Day 1 - requirements and UI wireframes
Open SaaS development from scratch: Day 2 - admin pages
Open SaaS development from scratch: Day 3 - user pages

Yesterday I worked for more than 3 hours. What I’ve done:

  1. After I finished the wireframes I moved to creating the database model. I created a sketch of this schema on just a paper (this sketch doesn't have all the relationships):
    Database schema sketch

  2. Then I opened my account on ElephantSQL and created a free database there. I copy the connection string for the database.

  3. I created the SaaS application.

  • I pulled the paid version of SaaS Forge boilerplate from the private repository,
  • created .env file and added some environment variables (like db_url)
  • run the install.bat script.
    I had a working SaaS app in 3 minutes. I also had to create a couple of settings files in VS Code (launch.json and settings.json).
  1. Then I started coding. I had to update database models, added several (10) new models. For example, the comment model looks like this:
    Comment model

  2. I activated the Python environment (just clicked Debug in VS Code) and run the

flask dbupdate

command.

It took less than a minute to generate all the tables in the database.
Generating tables

To make sure everything went well, I run the pgAdmin and connected to the newly-made database. I found all my tables:

Created tables

I also looked into the Comment table:

Comment table in the database

  1. During the process of creating models, I realized that I forgot to create UI for editing categories, types, and statuses. I believe it's a good idea to make them editable because every project could require its own set of statuses that can be different from another one. Also, I decided to make tags board-wide (on the sketch it's related to the category table because I thought every category should have its own set of tags, then I decided it was wrong).

So, I created one more page for the board settings (tabs for categories, types, statuses, and tags are all the same):

Tab category

Then I wanted to have a little rest :) So, I opened Facebook and found there one more competitor but it frustrated me. Not because it was one more competitor but because people are just copycats wanting to clone Canny. The funny thing there is ALREADY a clone of Canny called Upvoty.com and I really don't understand why we need one more. They (talo.live) copy everything including integration and the pricing model.

Note, this project is not a Canny's clone. I probably borrowed some ideas too but it wasn't my intention. Quite the contrary, I don't like Canny and want to create a service that would work and look differently.

Time spent: 3,5 hour
Total time spent so far: 6 hours 10 minutes

posted to Icon for group Product Development
Product Development
on March 9, 2020
Trending on Indie Hackers
1 small portfolio change got me 10x more impressions User Avatar 30 comments AI Is Destroying the Traditional Music Business and Here’s Why. User Avatar 29 comments Fixing my sleep using public humiliation and giving away a Kindle User Avatar 23 comments A Tiny Side Project That Just Crossed 100 Users — And Somehow Feels Even More Real Now User Avatar 16 comments From 1k to 12k visits: all it took was one move. User Avatar 11 comments Retention > Hype: What Are We Really Chasing as Builders? User Avatar 9 comments