Back

Case study

Internal CRM & Reporting Tool

It is an internal CRM designed to manage structured communication between clients, employees, and administrators. The application provides a Google-authenticated client interface for composing and sending emails, alongside an administrative dashboard for managing users, projects, and viewing reports. The system relies on a Node.js backend to securely handle authentication and email delivery workflows.

Full Stack EngineerProduct build9 screenshotsReactViteTypeScriptNodeJsMySQL
Internal CRM & Reporting Tool preview

Role

Full Stack Engineer

Scope

Full-stack ownership

Stack

React, Vite, TypeScript, NodeJs, MySQL

Problem

What needed to be solved

It is an internal CRM designed to manage structured communication between clients, employees, and administrators. The application provides a Google-authenticated client interface for composing and sending emails, alongside an administrative dashboard for managing users, projects, and viewing reports. The system relies on a Node.js backend to securely handle authentication and email delivery workflows.

Solution

What I helped build

It is an internal CRM designed to manage structured communication between clients, employees, and administrators. The application provides a Google-authenticated client interface for composing and sending emails, alongside an administrative dashboard for managing users, projects, and viewing reports. The system relies on a Node.js backend to securely handle authentication and email delivery workflows.

Product

Screenshots and flow

Internal CRM & Reporting Tool screenshot 1

1 / 9

Ownership

My contributions

  • 1

    Implemented a Google-only authentication flow for secure user access

  • 2

    Built a client-facing interface allowing authenticated users to compose and send emails

  • 3

    Developed an admin dashboard to manage clients, employees, and projects

  • 4

    Implemented CRUD operations for client, employee, and project management

  • 5

    Built a reporting interface allowing administrators to view submitted reports

  • 6

    Implemented project-based association between clients, employees, and reports

  • 7

    Integrated backend email delivery using Node.js to send emails on behalf of authenticated users

  • 8

    Handled Google OAuth authorization scopes required for secure email sending

  • 9

    Designed role-based access separating client and administrator functionalities

  • 10

    Implemented user feedback mechanisms such as success notifications after email submission

Stack

Technologies used

ReactReact
ViteVite
TypeScriptTypeScript
NodeJsNodeJs
MySQLMySQL
ExpressExpress
Tailwind CSSTailwind CSS