3
1 Comment

I'm building SaaS and documenting the process. Day 10: finished all 4 meta lists for board settings page

This is the tenth 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
Day 6: created the admin board and new problems
Day 7: board settings page
Day 8: board settings page, more details and tabs
Day 9: board settings page, more tabs

Yesterday I finished working on all 4 tabs for the board settings page: Categories, Types, Statuses, Tags.

I put all of them into 4 different tables. But then I thought it could be normalized: I could put them into one table with adding an additional column like "entity_tab". I'm not sure if I want to change it now or later. Or, maybe, never :)

It took a little bit longer time than I planned - mostly because I forgot how to pass props to React child component properly. My problem was the props I had to pass was updated asynchronously, therefore, at the moment when subcomponent takes it, it would always be undefined. The fact there could be "bad" and "good" ways to implement it added the mess :)) But finally I found the solution, from this article:

https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#fetching-external-data-when-props-change

Another problem was UI's functions. As you can see from the screenshot I wanted to provide a user with the opportunity to add, remove, and move up and down all items.

Board categories

To make it possible I had to reorder indexes of items. And I wanted to send all items at once. The question was how to handle removing items? I created an additional list for removed items that I just iterate on the server-side and remove.

It took most of time and then just 5 minutes to generate the same component for the other 3 tabs.

You can see in action how it works now:
https://www.youtube.com/watch?v=BBrPbEUBcyI&list=PLlevWhQv-UWReBfP8JZpuLCxj-soUs7KI

Youtube video

Sorry for the quality, it's better but still not perfect. I'm working on it :)

Thanks!

Time spent: 4,5 hours
Total time spent so far: 22 hours

on March 15, 2020
Trending on Indie Hackers
Most founders don't have a product problem. They have a visibility problem User Avatar 106 comments Day 4: Why I Built a $199 Workspace Nobody Asked For User Avatar 55 comments Hi IH — quick update. The MVP is live. User Avatar 31 comments I Built a Football Sentiment Platform in 18 Days. The World Cup Starts in 7 Days. Now I Need Distribution. User Avatar 17 comments Built an n8n booking alert system — is cold outreach dead for B2B micro-tools? User Avatar 16 comments Building ExpenseSpy solo, no funding — launching June 17 on iOS & Android User Avatar 15 comments