The objective

The client requires an application to allow a parent to add their child and track various factors of the child's life. Like food, hygiene, sleep and growth. Regular reminders for each of these factors and graphs to track them are required.

Dividing the objective into requirement list

  1. A dashboard for parent to navigate the records of their child and view the graphs
  2. Forms to enter food, hygiene, sleep and growth details.
  3. A child profile with image editing functionality.
  4. Social media features with Image and text capabilities

Describing the situation

Points to describe the situation

  1. The current database is in 2 different repositories. Django + React.js
  2. There are several difficult to debug, bugs in the codebase.

Resolution

Finally the decisions:

We discussed with the client and decided to move the whole application to Next.js. Doing this would have the following advantages-

  1. The client will only have to maintain a single repo
  2. The codebase will be clearer and well documented, unlike before
  3. Rebuilding the application in Next.js will be a lot faster than debugging the react + Django app. Saving the client and us, time and cost.

Tech stack

Next.js

What is Next.js?

An opinionated, intuitive web framework based on react.

Why use Next.js

  1. This project has high involvement of frontend as well as backend.
  2. Next.js blurs the lines between frontend and backend allowing us to integrate them with ease.
  3. It has great dev experience and I will use it unless there's a reason not to, honestly the best react framework (I'm yet to try Svelte)

Firebase

What is Firebase?

A BaaS (Backend as a service) based on GCP.

Service descriptions

  • Authentication: Auth with Google, Facebook, email-password
  • Authorisation: Let’s us give users a profile
  • Storage: Profile photos and other media files
  • Database: (Firestore) A no-sql database
  • Vercel

    Most convenient server host for Next.js (the firm which develops Next.js, however it can be deployed on any server)

    Screenshots

    Dashboard

    Child profile

    Navigation

    Social module