0% found this document useful (0 votes)
15 views44 pages

File F Merged

The Sati College CRM System is a full-stack web application developed using the MERN stack to streamline academic and administrative processes in educational institutions. It features modules for student management, faculty operations, course allocation, and real-time notifications, enhancing workflow and data security through role-based access and two-factor authentication. The project aims to improve operational efficiency and user experience while laying the groundwork for future enhancements.

Uploaded by

abhaypatidar1718
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views44 pages

File F Merged

The Sati College CRM System is a full-stack web application developed using the MERN stack to streamline academic and administrative processes in educational institutions. It features modules for student management, faculty operations, course allocation, and real-time notifications, enhancing workflow and data security through role-based access and two-factor authentication. The project aims to improve operational efficiency and user experience while laying the groundwork for future enhancements.

Uploaded by

abhaypatidar1718
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 44

SATI COLLEGE CRM SYSTEM

A Project-II Report
Submitted in partial fulfillment of requirement of the
Degree of
BACHELOR OF TECHNOLOGY in COMPUTER
SCIENCE & ENGINEERING
BY

ABHAY PATIDAR

EN21CS301017

AAYUSH DUSHANE

EN21CS301014

Under the Guidance of

Prof. AJAJ KHAN

Department of Computer Science & Engineering

Faculty of Engineering

MEDICAPS UNIVERSITY, INDORE- 453331

JAN 2025 - APR 2025


Report Approval

The project work “Sati College CRM” is hereby approved as a creditable study of an
engineering/computer application subject carried out and presented in a manner satisfactory to
warrant its acceptance as prerequisite for the Degree for which it has been submitted.

It is to be understood that by this approval the undersigned do not endorse or approved any statement
made, opinion expressed, or conclusion drawn there in; but approve the “Project Report” only for
the purpose for which it has been submitted.

Internal Examiner
Name:
Designation
Affiliation

External Examiner
Name:
Designation
Affiliation

2
Declaration

I/We hereby declare that the project entitled “Sati College CRM” submitted in partial fulfillment
for the award of the degree of Bachelor of Technology/Master of Computer Applications in
‘Computer Science & Engineering’ completed under the supervision of Prof. Ajaj Khan, Faculty
of Engineering, Medi-Caps University Indore is an authentic work.

Further, I/we declare that the content of this Project work, in full or in parts, have neither been taken
from any other source nor have been submitted to any other Institute or University for the award of
any degree or diploma.

Aayush Dushane
Abhay Patidar

3
Certificate

I/We , Ajaj Khan certify that the project entitled “Sati College CRM” submitted in partial
fulfillment for the award of the degree of Bachelor of Technology by Aayush and Abhay is the
record carried out by him under my guidance and that the work has not formed the basis of award
of any other degree elsewhere.

Prof. Ajaj Khan Mr. Balkrishna patel


computer science and Engineering Cyber Instant Pvt Ltd
Medi-Caps University, Indore

Dr. Ratnesh Litoriya

Head of the Department


Computer Science & Engineering

Medi-Caps University, Indore

4
Acknowledgements

I would like to express my deepest gratitude to Honorable Chancellor, Shri R C Mittal, who has
provided me with every facility to successfully carry out this project, and my profound indebtedness
to Prof. (Dr.) D. K. Patnaik, Vice Chancellor, Medi-Caps University, whose unfailing support and
enthusiasm has always boosted up my morale. I also thank Prof. (Dr.) Pramod S. Nair, Dean,
Faculty of Engineering, Medi-Caps University, for giving me a chance to work on this project. I
would also like to thank my Head of the Department Dr. Ratnesh Litoriya for his continuous
encouragement for the betterment of the project.

I express my heartfelt gratitude to my External Guide, Mr. Balkrishna Patel, Project Lead, Cyber
Instant Pvt. Ltd as well as to my Internal Guide, Ajaj Khan, Professor, Department of Computer
Science Engineering, MU, without whose continuous help and support, this project would ever have
reached to the completion.

I would also like to thank to my team at Cyber Instant Mr. Balkrishna Patel who extended their kind
support and help towards the completion of this project.

It is their help and support, due to which we became able to complete the design and technical report.

Without their support this report would not have been possible.

B.Tech. IV Year
Department of Computer Science & Engineering
Faculty of Engineering
Medi-Caps University, Indore

5
Abstract
The Sati College CRM System is a full-stack web application designed to digitalize and simplify
various academic and administrative processes in educational institutions. Developed using the
MERN stack (MongoDB, Express.js, React.js, Node.js), this system integrates various modules
to handle student management, faculty operations, course allocation, notifications, and user
authentication in a unified digital ecosystem.

The frontend was developed using React.js, offering a responsive, user-friendly interface for
students, faculty, and administrators. Tailwind CSS was utilized to maintain a consistent, modern
design. The client-side application allows users to log in, view data dashboards, access course
materials, enroll in subjects, and receive real-time notifications.

The backend was developed using Node.js with Express.js to create a robust RESTful API
structure. MongoDB was used as the primary database due to its scalability and flexibility in
handling non-relational, nested data. The backend handles user authentication, including
two-factor verification for administrators, secure data transactions, and role-based access control for
managing permissions.

A key component of the system is the Student Management Module, where student profiles can
be created, updated, and enrolled into courses. The Faculty Management Module assigns faculty
to courses and tracks schedules and attendance. The Course Management Module enables faculty
to create, update, and upload course materials. The Notification System provides real-time
communication via email, SMS, and in-app alerts using integrations like Nodemailer and Twilio.

This CRM system improves institutional workflow, ensures secure data handling, and enhances the
academic experience for all stakeholders. Built with a modular and scalable architecture, it lays the
foundation for future enhancements like analytics dashboards, live chat support, and integration with
third-party LMS platforms.

Keywords:
MERN Stack , Course Management , MongoDB , Express.js , React.js , Node.js , REST , API, CRM ,
Authentication.

6
Table of Contents
Page No.

Report Approval i
Declaration ii
Certificate iii
Acknowledgement iv
Abstract v
Keywords v
Table of Contents vi
List of figures vii
Abbreviations
Chapter 1 Introduction 1-6
1.1 Introduction 1
1.2 Literature Review 2
1.3 Objectives 3
1.4 Significance 5
Chapter 2 Requirements Specification 7-13
2.1 Experimental Set-up 7-9
2.2 Procedures Adopted 9-13
Chapter 3 System Design and Implementation 14-23
3.1 Project Structure 14
3.2Developer Contribution Overview 15
3.3 Feature Implementation Details 16-23
Chapter 4 Database Design 23-28
4.1 Database Overview 24-25
4.2 Database Schemas 25-28
Chapter 5 Results and Discussions 29-31
Chapter 6 Summary and Conclusions 32-34
Bibliography 35

7
List of Figures

Figure No. Figure Name Page No.


figure 3.3.1 User Authentication 16
figure 3.3.2 OTP Verification 16
figure 3.3.3 Encryption 17
figure 3.3.4 Enroll in Course 18
figure 3.3.5 Delete course 19
figure 3.3.6 Courses Array 19
figure 3.3.7 Send Mail 20
figure 3.3.8 Personal Info. 21
figure 3.3.9 Personal Info. Db 21
figure 3.3.10 Academic Info. 22
figure 3.3.11 Academic Info. Db 22
figure 3.3.12 Document upload 23
figure 3.3.13 Document upload Db 23
figure 4.2.1 User Schema 26
figure 4.2.2 Student Schema 26
figure 4.2.3 Faculty Schema 26
figure 4.2.4 Course Schema 27
figure 4.2.5 Notification Schema 27
figure 4.2.6 Personal Schema 27
figure 4.2.7 Academic Schema 28
figure 4.2.8 Document Schema 28

8
Abbreviations

Abbreviation Full Form

CRM Customer Relationship Management

MERN MongoDB, Express.js, React.js, Node.js

API Application Programming Interface

JWT JSON Web Token

OTP One-Time Password

UI User Interface

UX User Experience

DB Database

CRUD Create, Read, Update, Delete

9
Chapter-1

Introduction

1.1 Introduction

The rapid evolution of technology has significantly transformed how institutions operate and
manage their internal systems. In educational environments, administrative processes such as
student enrollment, faculty scheduling, course material management, and academic tracking have
traditionally been handled through paper-based methods or legacy desktop software systems. These
methods, though once effective, are now inefficient, time-consuming, and prone to errors. With the
growing number of students and faculty in institutions, there is an urgent need for robust digital
platforms that can automate and streamline academic and administrative processes efficiently.

To address this growing need, our project introduces a College CRM (Customer Relationship
Management) System, a full-stack web application developed using the MERN stack—
comprising MongoDB, Express.js, React.js, and Node.js. The goal of this project is to create a
centralized platform for managing key institutional functions like student management, faculty
operations, course enrollment, notifications, and user authentication. The CRM system is designed
to offer an integrated solution that improves coordination among different stakeholders—students,
faculty, and administration—while reducing manual overhead and ensuring data integrity.

The project’s frontend is developed using React.js, which offers a modular, component-based
structure that is ideal for building dynamic and responsive user interfaces. React’s virtual DOM and
fast rendering ensure a smooth and intuitive experience for users across different devices. Tailwind
CSS has been used to create a modern, minimalistic, and responsive design interface.

The backend, where most of the application logic resides, is built using Node.js and Express.js,
which together provide a scalable, event-driven environment for building RESTful APIs.
MongoDB, a popular NoSQL database, is used for persistent storage, offering flexibility in
managing complex and nested data structures like student profiles, attendance records, and faculty
schedules.

1
The system also places a strong emphasis on security. Users log in with encrypted credentials, and
administrators are protected with Two-Factor Authentication (2FA), implemented using OTP-
based email verification. Role-Based Access Control (RBAC) ensures that users only have access
to information relevant to their roles.

This CRM system also incorporates a powerful notification system using Nodemailer for email
alerts and optional SMS integrations for critical messages. In-app notifications are designed for
better real-time communication regarding announcements, assignments, and alerts.

1.2 Literature Review

In the last two decades, educational institutions have started to embrace digitization to meet the
growing demands of academic administration and to keep pace with global digital trends.
Historically, educational data management systems were mostly confined to local software or ERP
systems with limited functionalities. These systems lacked the flexibility, integration capabilities,
and user-centered designs necessary for modern institutions. With the rise of web technologies and
cloud-based solutions, educational software has witnessed a paradigm shift toward web-based, real-
time platforms.

Earlier studies and implementations of campus management systems reveal that many institutions
relied on ERP modules to handle tasks like admissions, student data management, faculty
attendance, and timetable scheduling. However, these ERP systems were not only expensive but
also difficult to customize, and often required significant technical support. They were generally
designed for corporate environments and adapted later for educational use, leading to issues in
scalability and user experience.

In recent years, the trend has shifted toward modular CRM systems tailored specifically for
academic workflows. Literature indicates that CRM systems can greatly enhance student
engagement, facilitate faculty collaboration, and improve operational efficiency. Researchers have
highlighted that a unified CRM approach allows for better tracking of academic progress,
personalized communication, and centralized data control.

One of the key challenges highlighted in multiple studies is the integration of various departments
into a unified digital platform. This involves complex relationships between

2
students, faculty, courses, and schedules. A monolithic system often fails to address the dynamic
nature of educational processes. Hence, microservices-based or modular architectures are
recommended for maintainability and scalability something the MERN stack supports exceptionally
well.

Furthermore, multiple case studies from institutions across the globe have demonstrated that using
MongoDB for academic data storage provides greater flexibility over traditional relational
databases. MongoDB’s schema-less architecture allows institutions to handle varied data types and
relationships without the strict constraints of SQL-based databases.

In terms of frontend development, tools like React.js have been extensively praised for their ability
to create scalable and reusable UI components. Literature reviews confirm that modern educational
platforms increasingly prefer React over traditional templating engines due to its strong community
support, performance optimization, and state management capabilities using tools like Redux or
Context API.

Authentication and data security remain critical concerns in educational CRMs. This project
addresses these concerns by integrating JWT-based authentication, bcrypt password hashing
mechanisms for administrative access. These are widely regarded as industry best practices.

1.3 Objectives

The primary objective of this project is to develop a comprehensive, full-stack web application—
Sati College CRM System—that simplifies and digitizes the management of key academic and
administrative functions in a college environment. This system aims to provide an efficient, user-
friendly, and secure platform for students, faculty, and administrative staff to interact, manage data,
and collaborate within a unified digital ecosystem.

The project has been conceptualized with the goal of automating institutional workflows and
eliminating manual, error-prone processes. The focus is on designing a modular and scalable
architecture that can adapt to the growing needs of educational institutions, especially those facing
challenges in managing increasing student numbers and faculty operations.

3
The major objectives of the project include:

1. To Build a Scalable and Secure Backend:

○ Design RESTful APIs using Express.js and Node.js to manage core functionalities
such as authentication, student management, faculty handling, and course data.

○ Use MongoDB to store and retrieve complex nested data structures such as user
profiles, enrollment records, attendance logs, and notification feeds.

2. To Implement Robust Authentication and Access Control:

○ Develop a secure user login system using JWT (JSON Web Tokens) and bcrypt
for encrypted password storage.

○ Integrate Two-Factor Authentication (2FA) via email-based OTP for


administrative accounts to ensure an additional layer of security.

○ Employ Role-Based Access Control (RBAC) to ensure users only have access to
functions relevant to their roles—student, faculty, or admin.

3. To Enable Efficient Student and Faculty Management:

○ Allow administrators to add, update, and remove student and faculty records.

○ Enable automatic assignment of faculty to courses, and students to subjects, with


the ability to track academic progress and faculty schedules.

4. To Facilitate Real-Time Communication:

○ Integrate a notification system that supports in-app alerts, emails using


Nodemailer, and optional SMS alerts using external APIs.

4
○ Ensure all stakeholders remain informed about course updates, announcements, and
important deadlines.

5. To Deliver a Responsive and Intuitive Frontend:

○ Build a user-friendly frontend using React.js and Tailwind CSS that works
seamlessly across devices and screen sizes.

○ Develop dashboards for different users—admin, student, and faculty—with relevant


data visualizations and actions.

6. To Maintain Extensibility for Future Enhancements:

○ Keep the system modular, allowing for future integration of features like fee
management, academic analytics, chat support, and mobile app versions.

In essence, the project is intended to deliver a digital transformation of the college’s administrative
and academic operations, making them faster, more accurate, and easily manageable through a
single integrated platform.

1.4 Significance

The significance of this project lies in its potential to transform the operational efficiency of an
educational institution by automating its most essential and frequently used processes. The
development of the College CRM System is not merely an academic exercise—it addresses
real-world problems faced by colleges and universities on a daily basis.

Traditional methods of managing student data, faculty schedules, and course allocations often
involve a high degree of manual intervention. These methods are time-consuming and susceptible
to human error. With the rising number of students and academic programs, these systems can
quickly become unmanageable. By digitizing these processes, this CRM system reduces the
administrative burden significantly and allows educational institutions to focus more on academic
excellence than on paperwork.

5
One of the most notable advantages of this CRM system is its ability to centralize all operations—
student records, course management, faculty assignment, communication, and performance
tracking—within a single platform. This not only improves efficiency but also ensures data
consistency and integrity across different departments. The system ensures that any update made by
one department is instantly reflected across the entire system.

The use of modern technologies such as the MERN stack adds further significance to the project.
MongoDB, being a NoSQL database, allows for dynamic and flexible data modeling, which is ideal
for the ever-changing structure of educational data. Express.js and Node.js allow for scalable
backend development that can handle thousands of concurrent users. React.js provides a responsive
and smooth user interface that enhances user experience.

Security is another vital aspect of this system. With growing concerns over data breaches and
unauthorized access, implementing features like JWT-based authentication, OTP verification,
and role-based access ensures that only authorized users can access sensitive information. This
makes the system suitable for handling confidential academic data such as student grades, faculty
feedback, and internal notices.

The notification system embedded into the CRM ensures timely communication between students,
faculty, and administrators. By integrating services like Nodemailer and Twilio, the system ensures
that no critical information is missed—whether it be an upcoming exam, assignment deadline, or an
emergency announcement.

Moreover, the significance of this system extends beyond its current scope. Its modular
architecture allows for easy expansion in the future. Features like AI-powered student performance
prediction, biometric attendance, integration with LMS platforms, or mobile application support can
be seamlessly added as per institutional requirements.

In conclusion, the College CRM System is a significant step toward digital transformation in
education. It reduces paperwork, improves transparency, and enhances user satisfaction by offering
a reliable, secure, and comprehensive solution tailored for academic environments.

6
Chapter - 2
Requirements Specification

2.1 Experimental Set-Up

The development of the Sati College CRM System was carried out in a structured environment
using a variety of industry-standard tools and technologies. This section describes the complete
experimental setup, including the hardware, software, development stack, and tools used to
implement the project.

Tech Stack Overview (MERN Stack)

● MongoDB: NoSQL database used for storing user profiles, course records, attendance, and
notifications in a flexible, document-oriented format.

● Express.js: Backend web framework used to build secure, scalable RESTful APIs and
middleware for route protection, validation, and error handling.

● React.js: Frontend library used to create a dynamic, component-based UI for student,


faculty, and admin users.

● Node.js: JavaScript runtime environment for developing server-side logic and handling
API requests asynchronously.

Development Tools

● Visual Studio Code: Used as the primary code editor with extensions for ESLint, Prettier,
and Git integration.

● Postman: Utilized for testing and verifying backend API endpoints.

● MongoDB Atlas: Cloud-based MongoDB database for storing and retrieving application
data.

7
● Git & GitHub: Used for version control and collaboration.

● Nodemailer: Used for sending OTP-based email notifications.

● Twilio (optional): Integrated for sending SMS notifications in future scalability plans.

● npm/Yarn: For managing dependencies and running development scripts.

● Dotenv: For managing environment variables such as API keys and database URIs.

System Configuration

● Operating System: Windows 10 / Ubuntu 20.04 LTS (for server testing)

● Processor: Intel i5 / Ryzen 5 or higher

● RAM: Minimum 8 GB (Recommended: 16 GB)

● Browser Compatibility: Tested on Chrome, Firefox, and Edge (latest versions)

Security Setup

● JWT (JSON Web Token) was used for authentication and route protection.

● bcrypt.js for hashing and securing passwords.

● CORS Policy was configured in Express to allow frontend-backend communication.

Deployment Plan

Although the project was primarily developed and tested in a local environment, it is structured to
support future deployment on platforms like:

8
● Render / Vercel / Netlify (Frontend)

● Railway / Cyclic / Heroku / AWS EC2 (Backend + Database)

This setup helped in achieving efficient API development, quick testing, and structured version
control.

2.2 Procedures Adopted

The development of the Sati College CRM System followed a modular, feature-driven workflow.
Each module was built independently with interlinked APIs and data flows, allowing for better code
organization, testing, and debugging. Below is a detailed breakdown of the procedures followed
during development:

Step 1: Project Setup and Initialization

● Initialized the project using npm init and set up separate folders for routes, controllers,
models, and middlewares.

● Installed necessary Node.js packages like express, mongoose, dotenv, cors, bcrypt,
jsonwebtoken, nodemailer, and others.

● Configured MongoDB Atlas connection and .env for storing sensitive credentials.

Step 2: Authentication System

● Created a user model in MongoDB with fields like name, email, password, role, and
isVerified.

9
● Developed secure registration and login routes.

● Implemented password hashing using bcrypt.

● Added JWT token generation for maintaining user sessions.

● For admin accounts, integrated email-based OTP verification using Nodemailer.

● Protected routes using JWT middleware and RBAC logic.

Step 3: Student Management Module

● Designed a student schema including course assignments, contact information, and


academic records.

● Developed API endpoints for:

○ Adding new students

○ Updating student details

○ Deleting (soft delete) student records

○ Fetching all/individual student data

● Used express-validator middleware for data validation.

10
Step 4: Faculty Management Module

● Created faculty schema with assigned courses and schedule tracking.

● Implemented routes to:

○ Add and manage faculty members

○ Assign faculty to courses dynamically

○ Track faculty attendance and availability

Step 5: Course Management Module

● Built schema for course information including syllabus, schedule, faculty assigned, and
resources.

● Developed routes for:

○ Course creation and updating by admins/faculty

○ Course enrollment by students

○ Fetching enrolled courses and content access

Step 6: Notification System

● Created a notification schema with fields for title, message, type, read/unread status, and
target user.

11
● Developed APIs to:

○ Send notifications

○ Fetch unread messages

○ Mark notifications as read

● Integrated Nodemailer for email alerts (like course enrollment, OTP).

● Twilio or similar service can be connected to send SMS alerts.

Step 7: Testing and Debugging

● Used Postman extensively to test:

○ User flows (register, login, verify OTP)

○ Admin operations (student/faculty/course management)

○ Authentication and protected routes

● Debugged using console.log, and try-catch blocks.

● Implemented centralized error-handling middleware.

12
Step 8: UI & Frontend Integration

● Though backend was the primary focus, API compatibility with React frontend was
ensured.

● All API routes were tested for CORS support and token-based access.

This modular development procedure allowed for focused implementation, proper separation of
concerns, and scalable backend structure. Each feature was individually tested and verified before
moving to the next, ensuring reliability across the entire system.

13
Chapter 3
System Design and Implementation

3.1 Backend Architecture

The backend of the Sati College CRM system was developed using Express.js, a Node.js
framework, along with MongoDB for the database. The backend architecture follows the
Model-View-Controller (MVC) design pattern for code modularity and maintainability. Mongoose
is used as the Object Data Modeling (ODM) library to interact with MongoDB.

3.1.1 Technologies Used

● Node.js & Express.js – Backend server and routing

● MongoDB & Mongoose – NoSQL database and schema definition

● JWT (JSON Web Tokens) – Authentication tokens

● Nodemailer / Twilio – Email/SMS alerts

● Dotenv – Environment variable management

● Bcrypt.js – Password hashing

3.1.2 Project Structure

/config – Database connection and environment setup

/controllers – Business logic for each route

/models – Mongoose schemas

14
/routes – API route definitions

/middleware – Authentication and validation logic

/utils – Helper functions (e.g., OTP generator, mail service)

3.2 Developer Contribution Overview

The backend development responsibilities undertaken by me included the following functional


modules as per the requirements:

● User Authentication (with two-factor verification for administrators)

● Student Management (CRUD operations, course assignment, progress tracking)

● Course Management (creation, update, enrollment handling)

● Notifications and Alerts (via Email, SMS, and in-app)

3.3 Feature Implementation Details

3.3.1 User Authentication

● Implemented secure login using hashed passwords (bcrypt).

● Integrated JWT-based token authentication for route protection.

● Developed Two-Factor Authentication (2FA) for admin users via OTP.

● Included middlewares for authentication and role-based access control.

15
Example Routes:

● POST /api/auth/login – User login

● POST /api/auth/verify-otp – OTP verification

figure 3.3.1 user Authentication

figure 3.3.2 OTP Verification

3.3.2 Student Management

Developed APIs to Add, Edit, Delete, and View student records.

Assigned courses to students and implemented logic to track academic progress.

Student schema includes details such as personal info, course list, progress status.

16
Example Routes:

POST /api/students/

PUT /api/students/:id

DELETE /api/students/:id

GET /api/students/:id

figure 3.3.3 Encryption

3.3.4 Course Management

● Implemented endpoints for creating, updating, and retrieving course details.

● Allowed students to enroll in courses and access content.

● Course schema includes title, syllabus, faculty assigned, and enrolled students.

Example Routes:

17
POST /api/courses/

DELETE /api/courses/:id

GET /api/courses/

POST /api/courses/enroll

figure 3.3.4 Enroll in Course

18
figure 3.3.5 delete course

figure 3.3.6 Courses Array

3.3.5 Notifications and Alerts

● Developed email and SMS alerts for important events (e.g., registration, course updates).

● In-app notification system to post announcements visible to users upon login.

19
● Integrated with APIs like Nodemailer or Twilio.

figure 3.3.7 Send Mail

3.3.6 Personal Details

POST http://localhost:5000/api/personal

20
figure 3.3.8 personal Info.

figure 3.3.9 personal Info Db structure.

3.3.7 Academic Details

Developed APIs to Add student academic records.


Academic schema includes academic details .

Example Routes:

POST http://localhost:5000/api/academic

21
figure 3.3.10 Academic Info.

figure 3.3.11 Academic Info Db structure.

3.3.8 Document Upload


Implemented endpoints for uploading documents over cloudinary platform.

Example Routes:

POST http://localhost:5000/api/documents

22
figure 3.3.12 Document Info.

figure 3.3.13 Document Info Db structure.

23
Chapter 4
Database Design

4.1 Database Overview

The Sati College CRM system employs a NoSQL database architecture to support its dynamic and
scalable data requirements. The database solution chosen for this project is MongoDB, a document-
oriented NoSQL database known for its high performance, scalability, and flexibility in handling
unstructured data. To efficiently manage data interactions, we utilized Mongoose, an Object Data
Modeling (ODM) library for MongoDB that provides a schema-based solution to model application
data in Node.js.

Technology Stack

● Database: MongoDB (NoSQL)

● ODM: Mongoose

● Backend Integration: Express.js + Node.js

Reasons for Choosing MongoDB & Mongoose:

1. Schema Flexibility:

○ MongoDB allows for flexible schemas, making it suitable for evolving application
requirements such as adding new fields or modifying data structures without
impacting existing data.

2. JSON-Like Documents:

○ Data in MongoDB is stored in BSON format (Binary JSON), which is natively


compatible with JavaScript and ideal for full-stack JavaScript development using
24
Node.js and Express.

3. High Scalability and Performance:

○ MongoDB is designed to handle large volumes of data and offers horizontal scaling,
which can accommodate increasing loads in an educational institution's CRM.

4. Simplified Relationship Handling:

○ With Mongoose, defining references between collections becomes intuitive, and its
populate() method simplifies data retrieval across related models.

5. Developer Productivity:

○ Mongoose enforces schema validation, which reduces errors during development and
provides a layer of abstraction that simplifies complex MongoDB operations.

4.2 Database Schemas

In the CRM system, data is organized into five primary collections: User, Student, Faculty,
Course, and Notification. These collections were carefully designed to model the real-world entities
of the college’s operational structure.

Below are the Mongoose schema definitions used to implement these entities:

1. User Schema

This schema stores authentication details and role information for all users in the system including
students, faculty, and administrators.

25
figure 4.2.1 User Schema

2. Student Schema

Holds personal and academic information for each student, including their course enrollment and
progress tracking.

figure 4.2.2 Student Schema

3. Faculty Schema

Contains data about faculty members including course assignments and weekly schedules.

figure 4.2.3 Faculty Schema

4. Course Schema

Represents each course available in the system and contains course-specific information and
references to enrolled students and assigned faculty.

26
figure 4.2.4 Course Schema

5. Notification Schema

Manages all system-generated alerts and announcements, supporting various communication


channels like email, SMS, and in-app.

figure 4.2.5 Notification Schema

6.Academic Schema

figure 4.2.6 Academic Schema

27
7.Personal Schema

figure 4.2.7 Personal Schema

8.Document Schema

figure 4.2.8 Document Schema

28
Chapter 5

Results and Discussions

The development of the backend for the Sati College CRM system has resulted in a robust, scalable,
and secure infrastructure that effectively supports core institutional operations such as user
authentication, student and faculty management, course handling, and notifications. The primary
focus of the project was to ensure that all backend functionalities align with the institution’s
academic and administrative workflows, ensuring data integrity, user role management, and real-
time communication. This chapter provides an overview of the results achieved through
development and the insights gained during implementation and testing.

5.1 Functional Outcomes

The backend system was successfully implemented using Node.js, Express.js, and MongoDB,
supported by Mongoose for schema modeling. The system includes a range of RESTful APIs that
were designed and tested to support the following key modules:

● User Authentication with 2FA:


A secure authentication system was developed using JWT for token-based access control
and bcrypt for password hashing. Special emphasis was placed on administrator security,
implementing a Two-Factor Authentication (2FA) mechanism using OTPs. This helps
prevent unauthorized access to sensitive administrative features.

● Student Management:
The system supports full CRUD (Create, Read, Update, Delete) operations for student
records. In addition, it allows for the assignment of students to multiple courses and tracks
their progress using a flexible schema. This enables future enhancements such as grade
tracking and automated report generation.

● Faculty Management:
Faculty members can be created and assigned to specific courses. The system includes a
basic schedule management system to track faculty availability and responsibilities,
29
providing a foundation for advanced timetable integration in the future.

● Course Management:
Faculty can create and update courses, and students can enroll in them through clearly
defined API routes. The system tracks which students are enrolled in which courses, and
allows linking of course materials.

● Notifications and Alerts:


A notification system was developed that supports in-app messages as well as potential
integration with email and SMS services. This functionality ensures that students and faculty
stay informed about important announcements such as new course materials, event
reminders, or system alerts.

All endpoints were tested using Postman, and various test cases were conducted for each route to
ensure they responded correctly to both valid and invalid input.

5.2 API Testing and Evaluation

Testing was conducted using Postman, focusing on both functionality and error handling. Below
are some of the core outcomes observed during API testing:

● Authentication APIs responded with appropriate status codes and JWT tokens. Incorrect
login attempts were handled gracefully with user-friendly messages.

● 2FA OTP Verification worked as expected, with OTPs being generated and verified for
admin users only.

● CRUD operations for students and faculty were tested extensively. Edge cases like
missing fields, invalid IDs, and empty updates were validated and returned expected error
responses.

● Course enrollment logic ensured that students could not be assigned the same course twice
and that the enrollment status was correctly reflected in both the student and course

30
documents.

● Notification system functioned correctly for both message creation and retrieval, and
maintained read/unread status.

Screenshots from Postman were captured as proof of working APIs and added to the documentation
to support evaluation and validation of the system's backend functionality.

5.3 Performance and Reliability

The system, although developed for a small-to-medium user base, was designed with performance
in mind. MongoDB’s efficient querying and Mongoose’s indexing support ensure that the
application can handle growing data volumes without performance degradation. Routes were
optimized for low latency, and asynchronous operations (using async/await) were implemented to
prevent blocking.

5.4 Discussion of Challenges and Solutions

Several challenges were encountered during development, particularly with designing a schema that
balanced flexibility and relational data consistency. The decision to use references (ObjectIds)
between documents instead of embedding sub-documents proved beneficial in maintaining data
normalization.

Implementing 2FA presented another challenge, especially in ensuring temporary OTP storage and
verification. A lightweight in-memory store was used for this project, though a production system
would use Redis or a database-backed solution with expiration times for improved security.

Another challenge was designing the student progress tracking mechanism. A Map field in the
student schema was used to allow dynamic and course-specific tracking, which offers extensibility
for grading, attendance, or progress analytics.

Finally, managing role-based access in a simplified architecture (without full RBAC middleware)
required careful route planning and assumed that frontend and API usage would adhere to predefined
user roles. In a full-scale deployment, this can be expanded with more granular access control layers

31
Chapter - 6

Summary and Conclusions

8.1 Summary

The objective of this project was to develop a backend system for a College CRM (Customer
Relationship Management) application that addresses the key administrative and academic needs
of an educational institution. This system was specifically designed to streamline operations such as
student and faculty management, course handling, secure authentication, and real-time
communication through notifications and alerts.

The development process focused on building a scalable and modular backend using Express.js for
the server-side framework and MongoDB as the database, with Mongoose as the ODM for schema
modeling. The chosen stack allowed for rapid development, real-time responsiveness, and flexibility
in data handling, all of which are critical for educational institutions that deal with dynamic
information and user roles.

The system architecture was designed without adopting the MVC pattern explicitly, making it
lightweight and easy to deploy in smaller institutional environments. All functionality was coded in
a single consolidated file to maintain simplicity while ensuring feature completeness.

The primary modules implemented include:

● User Authentication, with a secure login system using hashed passwords and Two-Factor
Authentication (2FA) for administrative users.

● Student Management, including full CRUD operations, course enrollment, and academic
progress tracking.

● Faculty Management, with course assignment and weekly schedule tracking.

● Course Management, allowing creation, editing, and enrollment functionalities with


references to students and faculty.

32
● Notification System, which sends in-app messages and supports future extensions to
email/SMS alerts.

The APIs developed were thoroughly tested using Postman, and each route was evaluated against
expected input/output scenarios. The system demonstrated reliable performance and consistent
handling of data, including validation for invalid inputs and secure user session handling via JWTs.

8.2 Conclusions

The backend CRM system developed through this project successfully meets the functional
requirements outlined at the beginning of the development lifecycle. It provides a strong foundation
for educational institutions to automate repetitive tasks, improve communication between
departments, and enhance student and faculty experience by digitizing key operations.

The use of modern web technologies like Node.js and MongoDB proved to be highly effective for
this purpose. The document-oriented nature of MongoDB allowed for easy storage and retrieval
of complex relational data structures, such as nested student progress or faculty schedules.
Additionally, Express.js enabled fast API development with well-structured RESTful endpoints that
can easily integrate with frontend applications or third-party systems.

One of the most significant achievements of the project was the implementation of a simple yet
secure authentication and role-based logic system. The inclusion of Two-Factor Authentication for
administrators adds an extra layer of security, ensuring that sensitive data is accessed only by
authorized personnel. Moreover, the clear separation of student, faculty, and admin roles helps
maintain control and data integrity across different user interactions.

The consolidated backend codebase is modular and extendable. It offers opportunities for future
development, such as:

● Integrating a frontend dashboard or mobile application.


● Implementing a payment gateway for fee management.

33
● Generating academic and financial reports.
● Adding features like student attendance tracking or automated email campaigns.

In conclusion, this backend development project has laid the groundwork for a full-featured College
CRM system. It demonstrates how modern web development practices can be applied to solve real-
world problems in the education sector, offering automation, scalability, and efficiency. With further
development and integration, this system has the potential to become a complete academic and
administrative solution for any institution seeking digital transformation.

34
Bibliography

➢ Express.js Documentation – https://expressjs.com

➢ MongoDB Documentation – https://www.mongodb.com/docs

➢ Mongoose ODM – https://mongoosejs.com

➢ JSON Web Tokens (JWT) – https://jwt.io

➢ Node.js Official Site – https://nodejs.org

➢ REST API Design Guidelines – https://restfulapi.net

➢ Twilio (SMS API) – https://www.twilio.com/docs

➢ Nodemailer (Email API) – https://nodemailer.com/about/

35

You might also like