0% found this document useful (0 votes)
41 views27 pages

MERN FIle

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)
41 views27 pages

MERN FIle

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/ 27

INDUSTRIAL TRAINING REPORT

on

MERN Stack

Submitted in partial fulfillment of the


Requirements for the award of
Degree of Bachelor of Technology in Computer Science and
Engineering

Submitted By
Utkarsh Goyal
Enrollment No.: 0827CS211252

SUBMITTED TO

Department of Computer Science and Engineering


Acropolis Institute of Technology and Research,
Indore
(July-Dec 2024)
Table of Content

1. Declaration …………………………………………………………………….2
2. Certificate of completion ……………………………………………………3
3. Opportunities (Role/work) ………………………………………………...4
4. Learning Objectives ……………………………………………………………5
5. Challenges faced …………………………………………………………………6
6. Weekly Summary ……………………………………………………………….7
7. About project undertaken ………………………………………………….21
a. Title ………………………………………………………21
b. Problem Statement ……………………………………….21
c. Objectives ………………………………………………...21
d. Description …………………………………………..……21
e. Modules …………………………………………...………22
f. Architecture Diagram ……………………………………….……….22
g. Technology Used …………………………………………..22
h. Implementation ……………………………………..……...22
i. Deployment Link …………………………………………..22
j. Source Code ……………………………………………..…22
k. Screenshots …………………………………………..…….23
8. Conclusion ………………………………………….……………………………….25
9. Bibliography ………………………………………………………………………..26

1
Department of Computer Science and Engineering
Declaration

I, Utkarsh Goyal, a student of the VII Semester in the Computer Science and
Engineering program at Acropolis Institute of Technology and Research,
Indore, hereby declare that the Industrial Training Report submitted is a true
and accurate account of the work conducted by me during the training period
from July 15, 2024 to August 28, 2024.

I confirm that this report truly represents my work and contains no material
previously published or written by another person except where due
reference is made in the report itself.

Signature:
Enrollment: 0827CS211252
Name: Utkarsh Goyal
Date:

2
Department of Computer Science and Engineering
Certificate of Completion

This is to certify that Utkarsh Goyal, a student of the VII Semester in the
Computer Science and Engineering program at Acropolis Institute of
Technology and Research, Indore has successfully completed his/her
industrial training on MERN Stack from July 15, 2024 to August 28, 2024.

During this period, he/she was sincerely involved in the learning of the
concepts and demonstrated commendable performance and professionalism
in completion of the tasks assigned.

Name:
Designation:
Date:
Signature:

3
Department of Computer Science and Engineering
Opportunities (Work/Role)

During my training program, I had learnt technologies for Software Development. where I
had the opportunity to work on a diverse range of projects that significantly contributed to
my professional growth. One of my primary responsibilities was to assist in the
development of a new customer relationship management (CRM) system for the company.
In this role, I collaborated with senior developers to design and implement features, such
as developing user interfaces using React.js, and creating backend services with Node.js
and Express. I was also tasked with writing and maintaining unit tests to ensure the
robustness of the code and performing code reviews to ensure adherence to best practices
and coding standards.

Additionally, I had the opportunity to participate in sprint planning meetings where I


contributed to defining project requirements, setting deadlines, and strategizing on task
prioritization. This involvement gave me a firsthand experience of Agile methodologies and
the iterative nature of software development. Another key aspect of my role was to support
the debugging and troubleshooting of existing applications. I worked on identifying issues,
proposing solutions, and implementing fixes under the guidance of my mentor. This task
sharpened my problem-solving skills and deepened my understanding of debugging
techniques and tools. I also contributed to documenting software features and technical
processes, which helped me develop clear and concise technical writing skills. Through
these varied responsibilities, I gained valuable insights into the full software development
lifecycle, including project management, collaborative development, and technical
problem-solving. The experience not only enhanced my technical expertise but also
improved my ability to work effectively in a team environment, manage competing
priorities, and communicate complex ideas.

Overall, the role provided me with practical experience that bridged the gap between
academic theory and real-world application, preparing me for future challenges in the field
of computer science.

4
Department of Computer Science and Engineering
Learning Objectives

The primary learning objective of the Internship Training Program is to bridge the gap
between academic knowledge and real-world application through hands-on experience in a
professional setting and establishments. The students or interns will get an opportunity to
be exposed to the latest technologies, industry practices, and development methodologies
used in the field of computer science and information technology. The key elements
covered during the training are:

Technical Skill Development: Learning about programming languages, software


frameworks, and development methodologies.

Practical Experience: Working on real-world projects to understand the software


development lifecycle.

Industry Practices: Gaining insights into professional practices, including version control,
agile methodologies, and project management.

Career Preparation: Building a portfolio of work and gaining experience to enhance


future job prospects.

While undergoing this training program the students will learn how to navigate the
complexities of real-world projects, including managing deadlines, balancing multiple
tasks, and adapting to changing requirements. The program will also aim to enhance their
critical thinking and innovative problem-solving abilities, encouraging interns to explore
creative solutions to technical problems and to engage in continuous learning and self-
improvement.

5
Department of Computer Science and Engineering
Challenges Faced
During an internship program, undergraduate students usually face various types of direct
and indirect challenges. The major primary challenges encountered could be navigating
complex, real-world projects that demands not only technical proficiency but also effective
problem-solving strategies. For instance, working on a software development project,
student may face significant difficulties with integrating different system components due
to inconsistent documentation and unforeseen bugs in the software application code. This
challenge may arise due to tight deadlines and the need for seamless collaboration with
team members from diverse technical backgrounds. To address this issue, they have to
rapidly develop debugging skills and improve their ability to communicate technical
concepts clearly to others.

Additionally, managing conflicting priorities is another constant challenge; which demands


balancing the demands of multiple projects required careful time management and the
ability to context switch between tasks. Another significant challenge may be adapting the
fast-paced work environment, which involve quick learning of new technologies and tools,
such as version control systems and development frameworks, which were not extensively
covered in academic coursework. This experience may teach the students the importance
of proactive learning and seeking help from mentors when faced with knowledge gaps.
Furthermore, the internship presents opportunities to work under the pressure of
delivering high-quality work within tight deadlines, which will nurture the ability to
remain focused and efficient under stress.

These challenges ultimately contribute to the strength by pushing out the comfort zone,
and enhances the problem-solving abilities of the students. The students will learn, how to
approach obstacles with a solution-oriented mindset and developed skills in teamwork,
communication, and adaptability that will be invaluable in their future career.

6
Weekly Summary

Week 1: JavaScript Fundamentals


Day 1: July 15, 2024

 Topic: JavaScript Basics


 Objective: Understand JavaScript syntax, variables, and data types.
 Activity: Practice exercises on variables and data types.
 Learning Outcomes: Basic understanding of JavaScript syntax.
 Challenges Faced: Adapting to the syntax.
 Skills Developed: Basic programming skills.

Day 2: July 16, 2024

 Topic: JavaScript Operators


 Objective: Learn arithmetic, logical, and comparison operators.
 Activity: Create programs using operators.
 Learning Outcomes: Understanding basic operations.
 Challenges Faced: Logical combinations.
 Skills Developed: Logical reasoning.

Day 3: July 17, 2024

 Topic: JavaScript Control Structures


 Objective: Use conditionals and loops.
 Activity: Program simple if-else and for-loop tasks.
 Learning Outcomes: Flow control in code.
 Challenges Faced: Nested loop management.
 Skills Developed: Problem-solving with loops.

Day 4: July 18, 2024

 Topic: JavaScript Functions and Scope

7
 Objective: Explore functions, parameters, and return values.
 Activity: Build functions for basic tasks.
 Learning Outcomes: Modularized code with functions.
 Challenges Faced: Understanding local/global scope.
 Skills Developed: Function design.

Day 5: July 19, 2024

 Topic: JavaScript Arrays


 Objective: Learn array operations.
 Activity: Practice array methods.
 Learning Outcomes: Data handling in arrays.
 Challenges Faced: Multidimensional arrays.
 Skills Developed: Data management.

Weekly outcome:

 Key Takeaways: JavaScript Fundamentals: syntax, operators, loops,


functions, arrays.
 Areas of Improvement: Debugging and data management.
 Plans for the Upcoming Week: Continue with objects, events, and DOM
manipulation.

8
Week 2: JavaScript Advanced Concepts

Day 6: July 22, 2024

 Topic: JavaScript Objects


 Objective: Understand object properties and methods.
 Activity: Create and use objects.
 Learning Outcomes: Object-oriented basics.
 Challenges Faced: Accessing nested objects.
 Skills Developed: Data modeling.

Day 7: July 23, 2024

 Topic: JavaScript Events


 Objective: Handle JavaScript events for interactivity.
 Activity: Create interactive pages.
 Learning Outcomes: Basic event handling.
 Challenges Faced: Event propagation.
 Skills Developed: Interactivity.

Day 8: July 24, 2024

 Topic: DOM Manipulation


 Objective: Modify HTML elements using JavaScript.
 Activity: Create dynamic pages.
 Learning Outcomes: Connect JS with HTML.
 Challenges Faced: DOM traversal.
 Skills Developed: Frontend interactivity.

Day 9: July 25, 2024

 Topic: Error Handling


 Objective: Learn JavaScript error handling.
 Activity: Practice try-catch blocks.
9
 Learning Outcomes: Debugging skills.
 Challenges Faced: Differentiating errors.
 Skills Developed: Error management.

Day 10: July 26, 2024

 Topic: Asynchronous JavaScript


 Objective: Learn async functions, callbacks, and promises.
 Activity: Implement async functions.
 Learning Outcomes: Handle asynchronous code.
 Challenges Faced: Managing promise chains.
 Skills Developed: Async programming.

Weekly outcome:

 Key Takeaways: Objects, events, DOM, error handling, async


programming.
 Areas of Improvement: Async programming practices.
 Plans for the Upcoming Week: Introduction to Node.js backend
concepts.

10
Week 3: Introduction to Node.js

Day 11: July 29, 2024

 Topic: Introduction to Node.js


 Objective: Backend basics with Node.js.
 Activity: Set up a server.
 Learning Outcomes: Backend setup.
 Challenges Faced: Initial configuration.
 Skills Developed: Server basics.

Day 12: July 30, 2024

 Topic: Node.js Modules


 Objective: Use built-in and custom modules.
 Activity: Create custom modules.
 Learning Outcomes: Modular coding.
 Challenges Faced: Dependency management.
 Skills Developed: Modularity.

Day 13: July 31, 2024

 Topic: File System in Node.js


 Objective: File operations in Node.js.
 Activity: Practice file read/write.
 Learning Outcomes: File handling.
 Challenges Faced: Async file ops.
 Skills Developed: File management.

Day 14: August 1, 2024

 Topic: Event Handling in Node.js


 Objective: Handle events in Node.
 Activity: Practice event-driven programming.
11
 Learning Outcomes: Event management.
 Challenges Faced: Async event handling.
 Skills Developed: Event handling.

Day 15: August 2, 2024

 Topic: Introduction to Express.js


 Objective: Set up Express framework.
 Activity: Create a basic Express server.
 Learning Outcomes: Framework setup.
 Challenges Faced: Middleware config.
 Skills Developed: Web server basics.

Weekly outcome:

 Key Takeaways: Node.js basics, including modules, file system, events,


Express setup.
 Areas of Improvement: Event-driven programming.
 Plans for the Upcoming Week: Work with Express middleware,
routing, and MongoDB basics.

12
Week 4: Express.js and MongoDB

Day 16: August 5, 2024

 Topic: Express Middleware


 Objective: Learn middleware for request handling.
 Activity: Create logging middleware.
 Learning Outcomes: Middleware basics.
 Challenges Faced: Reusability.
 Skills Developed: Middleware development.

Day 17: August 6, 2024

 Topic: Routing in Express


 Objective: Organize routes in Express.
 Activity: Set up RESTful routes.
 Learning Outcomes: Routing basics.
 Challenges Faced: Structuring.
 Skills Developed: API design.

Day 18: August 7, 2024

 Topic: MongoDB Introduction


 Objective: Understand MongoDB.
 Activity: Create collections.
 Learning Outcomes: NoSQL basics.
 Challenges Faced: Schema-less design.
 Skills Developed: Data handling.

Day 19: August 8, 2024

 Topic: CRUD Operations in MongoDB


 Objective: Perform CRUD tasks.
 Activity: Write CRUD scripts.
13
 Learning Outcomes: CRUD basics.
 Challenges Faced: Managing data.
 Skills Developed: Database management.

Day 20: August 9, 2024

 Topic: Connecting MongoDB with Express using Mongoose


 Objective: Use Mongoose for MongoDB and Express.
 Activity: Create and connect models.
 Learning Outcomes: Integration skills.
 Challenges Faced: Schema design.
 Skills Developed: Data integration.

Weekly outcome:

 Key Takeaways: Middleware, routing, MongoDB, and Mongoose basics.


 Areas of Improvement: Mongoose schema handling.
 Plans for the Upcoming Week: Advanced Mongoose, JWT, and React
basics.

14
Week 5: Advanced Mongoose and JWT

Day 21: August 12, 2024

 Topic: Advanced Mongoose Queries


 Objective: Learn complex queries.
 Activity: Write complex queries.
 Learning Outcomes: Data aggregation.
 Challenges Faced: Structure queries.
 Skills Developed: Query handling.

Day 22: August 13, 2024

 Topic: Relationships in MongoDB


 Objective: Model One-to-Many/Many-to-Many.
 Activity: Build related models.
 Learning Outcomes: Relations basics.
 Challenges Faced: Choosing methods.
 Skills Developed: Database design.

Day 23: August 14, 2024

 Topic: JWT Authentication


 Objective: Use JSON Web Tokens.
 Activity: Implement JWT auth.
 Learning Outcomes: Security basics.
 Challenges Faced: Token mgmt.
 Skills Developed: Authentication.

Day 24: August 16, 2024

 Topic: Protecting Routes with JWT


 Objective: Route protection.
 Activity: Set up route security.
15
 Learning Outcomes: Secure data access.
 Challenges Faced: Token expiration.
 Skills Developed: Security.

Weekly outcome:

 Key Takeaways: Advanced Mongoose, JWT.


 Areas of Improvement: Security practices.
 Plans for the Upcoming Week: Start React and frontend integration.

16
Week 6: React Basics

Day 25: August 20, 2024

 Topic: Introduction to React and JSX


 Objective: Set up a React project and learn JSX syntax.
 Activity/Assignment/Experiment/Practical: Set up a new React app
and create basic components.
 Learning Outcomes: Familiarity with the React environment and JSX.
 Challenges Faced: Adapting to JSX syntax.
 Skills Developed/Improved: React setup and component creation.

Day 26: August 21, 2024

 Topic: Components and Props


 Objective: Learn about functional components and passing data
through props.
 Activity/Assignment/Experiment/Practical: Build simple
components and pass data via props.
 Learning Outcomes: Understanding data flow in React.
 Challenges Faced: Structuring and reusing components.
 Skills Developed/Improved: Component design, prop usage.

Day 27: August 22, 2024

 Topic: State and Lifecycle


 Objective: Explore state management within components and learn
about lifecycle methods.
 Activity/Assignment/Experiment/Practical: Implement stateful
components and practice lifecycle methods.
 Learning Outcomes: Dynamic UI updates based on state.
 Challenges Faced: Managing component state and lifecycle events.
 Skills Developed/Improved: State management and component
lifecycle.
17
Day 28: August 23, 2024

 Topic: Event Handling in React


 Objective: Learn to handle user events in React.
 Activity/Assignment/Experiment/Practical: Create interactive
components with button clicks, form submissions, and more.
 Learning Outcomes: Skills in creating interactive UIs.
 Challenges Faced: Handling event binding and propagation.
 Skills Developed/Improved: Event handling, user interaction.

Weekly outcome:

 Key Takeaways: Understanding of React basics: JSX, components,


props, state, and events.
 Areas of Improvement: Practice complex state management and event
handling in nested components.
 Plans for the Upcoming Week: Focus on EJS for templating and basics
of AngularJS.

18
Week 7: EJS and AngularJS Basics

Day 29: August 27, 2024

 Topic: Introduction to EJS


 Objective: Learn to use EJS for creating dynamic HTML templates in
Express.js applications.
 Activity/Assignment/Experiment/Practical: Set up EJS with Express,
create templates, and render dynamic data.
 Learning Outcomes: Understanding of dynamic HTML rendering on
the server side.
 Challenges Faced: Data injection in templates.
 Skills Developed/Improved: Server-side rendering with EJS.

Day 30: August 28, 2024

 Topic: EJS Partials and Layouts


 Objective: Create reusable partials and base layouts for EJS templates.
 Activity/Assignment/Experiment/Practical: Set up partials for
headers, footers, and create a base layout.
 Learning Outcomes: Understanding of modular templating.
 Challenges Faced: Structuring layouts and maintaining consistency.
 Skills Developed/Improved: Modular design with EJS.

Day 31: August 29, 2024

 Topic: Introduction to AngularJS


 Objective: Understand AngularJS basics and the Model-View-Controller
(MVC) architecture.
 Activity/Assignment/Experiment/Practical: Set up AngularJS project
and create simple components.
 Learning Outcomes: Introduction to AngularJS and MVC.
 Challenges Faced: Adjusting to Angular’s structure and syntax.

19
 Skills Developed/Improved: Basic Angular setup and MVC
understanding.

Day 32: August 30, 2024

 Topic: Data Binding in AngularJS


 Objective: Learn one-way and two-way data binding in AngularJS.
 Activity/Assignment/Experiment/Practical: Implement data binding
in AngularJS for form elements and dynamic views.
 Learning Outcomes: Understanding of data flow in Angular
applications.
 Challenges Faced: Managing data flow and binding in nested
components.
 Skills Developed/Improved: Data binding, AngularJS fundamentals.

Weekly outcome:

 Key Takeaways: Proficiency in EJS templating, reusable components


with partials, and foundational skills in AngularJS with data binding.
 Areas of Improvement: Practice more with complex data binding and
structuring AngularJS components.
 Plans for the Upcoming Week: Successfully completed 32-day training
covering JavaScript, MERN Stack, EJS, and AngularJS fundamentals.

20
Capstone Project undertaken in Industrial Training

1. Title:
FLIP - Social Media Platform

2. Problem Statement:
Create a social media platform that prioritizes user privacy, mental well-
being, and meaningful engagement, while addressing issues of
information overload, data security, and fostering authentic connections
in a safe environment.

3. Objectives:
 To provide a seamless, interactive experience for user.
 To create a platform that allows to publish and manage posts.
 To facilitate a user-friendly interface for users, managing id, and
handling posts.

4. Description:
FLIP is a social media developed using the MERN stack (MongoDB,
Express.js, React.js, and Node.js) to create an immersive, accessible
environment. It supports user account management, posting , and
commenting functionalities. The platform is designed to support a broad
audience.
5. Architecture Diagram:
Here is a high-level diagram that illustrates the architecture of the FLIP
ed-tech platform:

Figure 5.1

6. Modules:

21
 User Authentication and Authorization Module: Manages user
registration, login, and session handling.
 Profile Management Module: Stores and manages user profile
data (name, age, bio, profile pictures, etc.).
 Content Creation and Management Module: Allows users to
create, edit, and delete posts (text, photos, videos)
 Social Interaction Module: Manages user interactions with
posts, including likes, comments, and shares.
 Search and Discovery Module: Facilitates searching of users,
posts, groups, pages, and content.

7. Technology Used:

 Frontend: React.js, Tailwind CSS, Redux (for state management), and


Figma for design.
 Backend: Node.js, Express.js, MongoDB, JWT (for secure token-based
authentication), Bcrypt (for password hashing), and Mongoose (for
database schema).
 APIs: RESTful APIs designed with JSON data exchange.
 Hosting and Deployment: Frontend on Vercel, backend on
Render/Railway, and database on MongoDB Atlas. Media files
managed with Cloudinary.

8. Implementation:

 Frontend Implementation: Designed using React.js with a


responsive interface. Each page (e.g., homepage, posts, wishlist, etc.)
is interactive and connected to backend APIs.
 Backend Implementation: Built with Node.js and Express.js
following a monolithic architecture, supporting CRUD operations on
courses, user management, and secure transaction handling.
 Database Management: Uses MongoDB to store course content and
user data. Schema includes models for user, followers, and posts.
 API Endpoints: Provides RESTful API endpoints for user and post
management, secure authentication.

9. Source Code: https://github.com/utkarshgoyal/FLIP

22
10. Screenshots:

Figure 5.2

Figure 5.3

23
Figure 5.4

24
Conclusion

Over the course of this 28-day training, I gained a comprehensive


understanding of the MERN Stack, EJS, AngularJS, and JavaScript. Starting from
foundational JavaScript concepts, I progressed to advanced asynchronous
programming and DOM manipulation, which built a solid base for backend
and frontend development.

In the backend segment, I worked extensively with Node.js and Express.js,


learning to structure APIs, use middleware, and integrate MongoDB using
Mongoose for database management. This experience also introduced me to
JWT authentication for secure data handling and advanced Mongoose queries
for efficient database interactions.

In the frontend phase, React taught me to design interactive and dynamic


interfaces using components, props, state management, and event handling.
Additionally, EJS templating and AngularJS allowed me to explore server-side
rendering and MVC architecture, expanding my ability to work across diverse
frontend frameworks.

Overall, this training has equipped me with essential full-stack development


skills, including API integration, state management, routing, and secure data
handling. It has prepared me to tackle real-world challenges and pursue
further growth in software development with confidence and a deeper
technical foundation.

25
Bibliography

 JavaScript Documentation. [Online]. Available: https://developer.mozilla.org/en-


US/docs/Web/JavaScript
 Node.js Documentation. [Online]. Available: https://nodejs.org/en/docs/
 Express.js Documentation. [Online]. Available: https://devdocs.io/express/
 MongoDB Documentation. [Online]. Available: https://www.mongodb.com/docs/
 React Documentation. [Online]. Available: https://react.dev/reference/react
 EJS Documentation. [Online]. Available: https://ejs.co/#docs
 AngularJS Documentation. [Online]. Available: https://docs.angularjs.org/guide

26

You might also like