Ehtesham

← Go Back

Mahayuva

Mahayuva

The Mahayuva portal was an ambitious project by the Confederation of Indian Industry (CII) in partnership with the Government of Maharashtra for the youth of the state.

Tech Stack

  • Nextjs
  • React Query
  • Typescript
  • Mantine UI
  • MongoDB
  • Redis
  • Nodemailer
  • Ajv
  • BullMQ
  • Firebase Auth
  • Turborepo

Some notable contributions I made:

Architected and chose the tech-stack:

I created the architecture of the project considering a short deadline and according to the skillsets of the developers we had to assign to the project.

- Nextjs & Mantine UI: We went full-stack with Nextjs to write the backend as well, so we can ship the API with the UI and used Mantine UI for ready to ship components, so that we focus on business logic and less on writing UI components.

- Turborepo: We used the monorepo architecture for our code repository, using Turborepo, so that we can share and view code easily accross the project.

Implemented resilient email system:

We only had the choice to use the DNS provider directly for sending emails, and it was unreliable, so we implemented a message queue using Redis and BullMQ so we can resend failed emails. Also we used queue because we anticipated huge spike in registrations on launch.

Learnings:

- I got to learn and implement a queue based email system, which was an amazing experience, understanding queue based systems and why they are used in scaling big systems.

- I learned about MongoDB "Change Streams" which gives you realtime updates of the documents being saved, and the best part is you can resume from a certain point in the stream if your stream breaks. Pairing this with the queue based email system made it resilient.

- Using the monorepo architecture helps a lot when using with a team, you can directly have a look at the backend API code or frontend integration without waiting for the other person to reply, run it locally to test it out and share common types too.