Website Architecture
The Website is divided into four parts each part is an independent node application operating in its own container. Four parts are as below:
Resource Server
CMS Application
Frontend Application (Website)
Database Server (PostgreSQL)
Technical Expertise Required
Before diving deeper into this document or making changes to source code, you should have the following technical expertise:
Resource Server
Resource server is responsible for connecting to the database and providing the data to the other applications. It is developed using the NestJS framework using TypeORM as ORM and developed with the TypeScript language.
You can find more details about NestJS in the NestJS Official Website.
Directory Structure—NestJS
We follow the standard NestJS directory structure. All the source code is available in the /src directory.
All the modules are available in the /src/modules directory. Each module has its own directory, and all the source code is available in the /src/modules/module_name directory.
Each module has the below parts:
/controllers
/entities
/services
.module.ts
Other common entities, controllers, guards, interceptors, etc. are located in the /src/common directory.
You can refer to NestJS Documentation for more information about Controller, Entity, Service and, Module, Guards, Interceptors, etc.
CMS Application
CMS application is from where you can manage the content of the website. The application internally connects to the Resource Server to fetch, update the data to the database. The CMS application provides User Interface to manage the content of the website and is described in detail in this entire document.
All the modules and their functionality are described in detail in this document.
The CMS Application is developed using the Next.js, App Router and React framework.
You can find more details about Next.js in the Next.js Official Website.
For the component library, we are using ShadCnUI component library.
You can find more details about ShadCN in the ShadCN Official Website.
Directory Structure—CMS Application
We follow the standard Next.js directory structure. All the source code is available in the /src directory.
You can refer to Next.js Project Structure Documentation for more information about Next.js source code structure.
Frontend Application (Website)
Frontend application is the user-facing application. It is developed using the Next.js framework.
You can find more details about Next.JS in the NextJS Official Website.
For the component library, we are using ShadCnUI component library.
You can find more details about ShadCN in the ShadCN Official Website.
Directory Structure—Frontend Application
We follow the standard Next.js directory structure. All the source code is available in the /src directory.
You can refer to Next.js Project Structure Documentation for more information about Next.js source code structure.
Database Server (PostgreSQL)
We are using PostgreSQL as the database server.
You can find more details about PostgreSQL in the PostgreSQL Official Website.
Database Diagram

Repository Structure
All application are available in their individual repositories (Access Shared Independently).
Next Steps
You can pull the code from the repository and open it in your favorite IDE and start educating yourself about the code.
We strongly recommend you to start with the Resource Server and then move on to the CMS Application and then the Frontend Application.
Libraries Used
Below are all the libraries and frameworks used in the project: