5
2 Comments

I'm building SaaS and documenting the process. Day 6: created the admin board and new problems

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

Open SaaS development from scratch: why and what
Day 1: requirements and UI wireframes
Day 2: admin pages
Day 3: user pages
Day 4: database models, database update, and a couple of new wireframe pages
Day 5: started API and made changes to the database models

Yesterday I started with thinking about several problems with the database schema.

First of all, multitenancy requires more strict control and checking ownership.
Secondly, it turned out that the interface dashboard for board admin and a usual user can't be the same.

The third problem was the architecture itself. I would like to provide the future ability for board admins to add more admins to it, therefore the board-user relationship can be many-to-one anymore and should be many-to-many.

I solved this problem by adding the additional intermediate table connecting these 2 entities.

The fourth problem is board on the main domain (where board admins are) and board on subdomain are not the same - but this problem is likely the same as the first one.

I decided to postpone solving them and start from the implementing UI.
So, the board entities are key ones so I created a page and menu for board admins:

Board admin

Then I created API for creating and updating board entities as well as getting the list of boards belonging to the current user.

On the front-end I added requests for initial loading the list of boards and POST request to update/create a board.

I used Flask-Marshmallow to restrict the data user would get (the board itself has a lot of fields but here user needs only id, automatic url, and name).

Here is how it looks like:

Board admin

The design is still not perfect but I will leave it until the end.

I created a short video showing how it works now:
Video

The video quality is awful but I didn't figure out yet how it can be better.

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

posted to Icon for group Product Development
Product Development
on March 11, 2020
  1. 1

    Did you really create the UI using html/javascript and linked it to backend in 3hrs? That is really quick. for that beauty.

    1. 1

      Yes, I did really create everything in html/javascript. But as I didn't start from scratch but used the boilerplate, what means all stubs for front-end and backend are ready. Adding a new API for backend is very simple. Adding a new JSX file is simple too, inside I use the normal JSX code what is a mix of HTML and JavaScript.

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