FSD Entity
FSD Entity
of the degree of
BACHELOR OF ENGINEERING
in
INFORMATION TECHNOLGY
(A.Y. 2024-2025)
BY
Aarya Kumar (01)
Kruten Lohar (03)
Sahil Mane (04)
Sakshi Mashalkar (06)
Kartik Maurya (07)
Sudhir Maurya (08)
Choice Based Credit Grading System with Holistic & Multidisciplinary Education
(CBCGS-HME 2023)
1
Certificate
This is to certify that Ms. Aarya Kumar, Mr. Kruten Lohar, Mr. Sahil Mane, Ms. Sakshi
Mashalkar, Mr Kartik Maurya, Mr Sudhir Maurya are Bonafede students of
Information Technology Department, Thakur College of Engineering and Technology,
Mumbai. They have satisfactorily completed the requirements of Full Stack
Development Program as prescribed by the University of Mumbai, while working on
Full Stack Development
entity of tnp.
Signature: ………………….
Assistant Professor
Date :
Place: Mumbai
2
Declaration
We declare that this written submission represents our ideas in our own words and
where others’ ideas or words have been included, we have adequately cited and referenced
the original sources. We also declare that We have adhered to all principles of academic
honesty and integrity and have not misrepresented or fabricated or falsified any idea in our
submission. We understand that any violation of the above will be cause for disciplinary
action by the Institute and can also evoke penal action from the sources which have thus not
been properly cited or from whom proper permission has not been taken when needed.
Date:
Place:
3
ACKNOWLEDGEMENT
1. …………………………
2. …………………………
3. …………………………
4. …………………………
5. …………………………
6. …………………………
4
Abstract
The project entails the development of a robust REST API designed to handle CRUD
operations across core entities such as Student, Attendance, Batch, Mentor, and Projects.
Using Java 17 and Spring Boot for backend development, the API integrates seamlessly
with PostgreSQL to manage large datasets efficiently, with foreign key relationships
ensuring effective data management. Comprehensive API documentation is provided
through Swagger UI, simplifying developer interactions, while an efficient logging
mechanism using SLF4J is implemented for monitoring and debugging.. The system is
designed for scalability, modularity, and future extensibility, ensuring easy maintenance
and integration of new features. The visual representation of key entity relationships
further supports streamlined data handling and enhanced system architecture.
CONTENT
5
Chapter No. Topic Page
1 Introduction 7
2 Program Objective 8
4 ER Diagram 11
5 Expected Outcome 13
6
Chapter No-1: Introduction
The Full Stack Development Program aims to provide in-depth knowledge and hands-on
experience in building robust web applications using Java as the core technology. This program
is focused on developing both the backend and database layers, enabling participants to create
scalable applications that adhere to industry standards. The program ensures that learners
understand the fundamental principles of software development, system design, and database
management, focusing primarily on server-side logic and backend operations.
This comprehensive program is designed to cover the entire software development lifecycle.
From creating data models and APIs to integrating databases and deploying applications,
participants will gain the skills needed to build, maintain, and enhance full-fledged web systems.
The course is structured to enhance the participant’s ability to work on real-world projects,
preparing them to tackle the challenges faced in a full-stack development role.
The program leverages Java as the backend language, using Spring Boot as the framework to
streamline development. Participants will also work with PostgreSQL for relational database
management, gaining experience in CRUD operations, transaction handling, and database
connectivity. Additionally, key concepts like API documentation, logging mechanisms, and
handling database queries through Java Persistence API (JPA) will be covered extensively.
Moreover, the program emphasizes best practices in security and performance optimization.
Participants will explore how to secure backend applications by implementing authentication and
authorization techniques using Spring Security, ensuring that only authorized users can access
specific resources. The program also introduces performance tuning techniques, such as database
indexing, caching, and query optimization, which are crucial for improving application efficiency
and scalability. By mastering these techniques, participants will be able to build high-performing,
secure applications capable of handling large volumes of data and user interactions in real-world
scenarios.
7
Chapter No-2: Primary objectives
Program Objective
The primary objective of the Full Stack Development Program is to enable participants
to develop a fully functioning backend application, capable of handling CRUD (Create,
Read, Update, Delete) operations efficiently. This involves learning how to build a
robust REST API using Java and Spring Boot, while ensuring seamless database
integration with PostgreSQL. Throughout the program, participants will focus on key
aspects such as system design, scalability, and maintainability, which are crucial in
building enterprise-level applications.
The primary objectives of the Full Stack Development Program are:
Participants will learn how to design and implement REST APIs capable of handling
CRUD operations. They will work on creating endpoints that allow interaction with the
application’s data layer in a structured manner. APIs will be developed using Java and
Spring Boot, focusing on modularity and scalability. For instance, participants will create
entities such as Student, Batch, Mentor, and Projects, each mapped to corresponding
database tables. These entities will hold attributes such as:
o Student:
private String uid;
private String classname;
private String name;
private String Email;
private String Contact;
private Integer Batch_No;
o Batch:
private int batch_no;
private String branch;
private String venue;
private String created_by;
private String created_date;
private String modified_by;
private String modified_date;
o Mentor:
private String mentor_id;
private String name;
private String contact;
8
private String email;
private String department;
private String created_by;
private String created_date;
private String modified_by;
private String modified_date;
o Projects:
private int batch_no;
private String domain;
private String mentor;
private String examiner;
private String created_by;
private String created_date;
private String modified_by;
private String modified_date;
o Attendance:
private String uid;
private int total_lectures;
private int present_lectures;
private int present_percent;
private String created_by;
private String created_date;
private String modified_by;
private String modified_date;
This will ensure that data regarding student attendance is correctly captured and
managed in the database.
9
Clear documentation is essential for enabling other developers to understand and use
APIs. Participants will use Swagger to document their APIs, making it easier for other
developers and teams to interact with the backend services. Swagger’s interactive API
documentation will allow developers to test the endpoints directly from the UI.
Monitoring applications and detecting issues early on is crucial for maintaining a reliable
system. Participants will be introduced to logging frameworks like SLF4J to track system
behaviors, detect anomalies, and log important events in the application. These logs can
be used to debug issues and improve system performance.
Handling complex database queries and operations is simplified using the Java
Persistence API (JPA). Participants will learn how to map Java objects to database tables
and perform CRUD operations efficiently. JPA will help them focus on business logic
while the persistence layer handles the interaction with the database.
10
Chapter No-3: Scope
The scope of my Full Stack Development project, built using Java Spring Boot with Maven and
PostgreSQL, extends far beyond its current implementation of CRUD operations. I have utilized
essential dependencies like Swagger for API documentation, Logger for effective logging,
Lombok to simplify my code, Spring Data JPA for seamless database interactions, and the
PostgreSQL driver to manage my database. By connecting the application to pgAdmin, I have
established a solid foundation that will allow my system to grow and evolve efficiently.
Looking into the future, the project has immense potential for scalability and performance
enhancement. With the robust architecture of Spring Boot and the powerful features of
PostgreSQL, my application is well-equipped to handle larger datasets and an increased number
of users. PostgreSQL offers advanced capabilities such as partitioning, indexing, and replication,
which I can implement to optimize database performance as the system scales. This will ensure
that my application can support higher traffic without compromising speed or reliability.
Additionally, the use of Swagger provides a framework to expand and document the API as new
features are added. This will make the API easier to maintain, test, and extend, while ensuring
consistency in communication between front-end and back-end services. I can also enhance the
security of my REST APIs by integrating authentication and authorization mechanisms like
OAuth or JWT tokens, which will be critical for building secure and reliable enterprise
applications.
Moreover, as my application grows, the integration of cloud services such as AWS or Azure can
open up new possibilities for hosting and scaling the application globally. This would allow for
easier management of infrastructure, automated deployments, and robust disaster recovery
solutions. By building on the current foundation, my project can evolve into a powerful,
enterprise-grade application capable of handling complex business operations with ease.
11
Chapter No-4: Entity Relationship Diagram
The Entity Relationship (ER) Diagram in this project outlines the structure and relationships
between various entities critical to the functioning of the system, such as `Batch`, `Student`,
`Mentor`, `Attendance`, and `Projects`. These entities work together to form a cohesive system
that tracks key academic information, manages attendance records, and monitors student
performance in projects under the guidance of mentors. Each entity has specific attributes and
relationships with others, which are represented in the diagram to show how they interact
within the overall system.
The `Batch` entity represents the collection of students grouped together, defined by attributes
such as `Batch No`, `Branch`, and `Venue`. Each batch is linked to a mentor through the
`Mentor_Id`, creating a connection between the `Batch` and `Mentor` entities. The mentor
assigned to each batch is responsible for overseeing the students in that group. This
relationship ensures that every student in a batch has a designated mentor for academic
guidance.
The `Student` entity stores personal and academic information about each student, including
their `UID`, `Name`, and `Class`. Each student is associated with a `Batch`, creating a foreign
key relationship with the `Batch` table. Additionally, the student’s attendance is tracked
through the `Attendance` entity, which records details like the number of lectures attended and
the percentage of attendance. The ER diagram clearly shows that each student has a unique
attendance record, ensuring accurate tracking of their participation.
The `Mentor` entity includes information about the mentors, such as their `Mentor_Id`,
`Name`, `Contact`, and `Department`. Mentors are linked to both the `Batch` and `Projects`
entities, where they supervise student projects. The `Projects` entity manages details about
each project, including the `Domain` and the mentor supervising it. Additionally, projects are
evaluated by an examiner, establishing relationships between mentors, students, and external
evaluators.
12
Lastly, the diagram reflects how `Group Details` play a role in organizing students into groups
for collaborative projects. These groupings are associated with topics and connected to the
project and batch structures. Overall, this ER diagram provides a visual representation of the
logical relationships between students, mentors, batches, attendance records, and projects,
facilitating an efficient and well-organized system for managing academic activities.
13
Chapter No-5: Expected Outcome
By the end of the Full Stack Development Program, participants will have developed a fully
functional backend application capable of handling a wide range of operations. The REST API
created during the program will be able to perform CRUD operations on all core entities such as
14
Students, Attendance, Mentors, and Projects. This API will be thoroughly documented using
Swagger, making it easy for other developers to understand and use.
Participants will also have integrated PostgreSQL with their application, ensuring that data is
stored efficiently and can be retrieved and manipulated through API endpoints. The use of JPA
will allow for smooth database interactions without the need for writing complex SQL queries,
making the codebase cleaner and easier to maintain.
Additionally, the application will include a comprehensive logging system built using SLF4J.
This will provide real-time insights into the performance of the application, enabling developers
to monitor API usage, track errors, and resolve issues quickly. The combination of a scalable
architecture, efficient database management, and robust logging will ensure that the application is
ready for deployment in production environments.
15
The overall outcome of the program is a fully functional, maintainable, and scalable backend
system, capable of handling real-world applications. Participants will leave the program with the
skills and knowledge needed to build enterprise-level backend systems using Java, Spring Boot,
and PostgreSQL.
16