Devops Report
Devops Report
Bachelor of Engineering
in
COMPUTER SCIENCE AND ENGINEERING
Submitted by
Samarth B Kalyani (1BG22CS135)
Sanjay M (1BG22CS141)
T Thanush (1BG22CS166)
Venkatesh S Bati (1BG22CS177)
Internal Guide
Shrikanth Hampiholi
Dept. of CSE ,
BNMIT, Bengaluru
B.N.M. Institute of
Technology
An Autonomous Institution under VTU
Approved by AICTE, Accredited as grade A Institution by NAAC. All eligible branches – CSE, ECE, EEE,
ISE & Mech. Engg. are Accredited by NBA for academic years 2018-19 to 2024-25 & valid upto 30.06.2025
URL: www.bnmit.org
Department of Computer Science and Engineering
2024 - 2025
B.N.M. Institute of
Technology
An Autonomous Institution under VTU
Approved by AICTE, Accredited as grade A Institution by NAAC. All eligible branches – CSE, ECE, EEE, ISE &
Mech. Engg. are Accredited by NBA for academic years 2018-19 to 2024-25 & valid upto 30.06.2025
URL: www.bnmit.org
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
CERTIFICATE
Certified that the DevOps project entitled Travel & Budget Tracking System carried out by
year 2024-25. It is certified that all corrections / suggestions indicated for Internal Assessment have
been incorporated in the project report deposited in the departmental library. The DevOps project report
(22CSE1663) has been approved as it satisfies the academic requirements in respect of Project work
Examiner 2:
ACKNOWLEDGEMENT
We would like to place on record our sincere thanks and gratitude to the concerned people, whose
suggestions and words of encouragement has been valuable.
We express our heartfelt gratitude to the management of BNM Institute of Technology, for giving
us the opportunity to pursue Degree of Computer Science and Engineering and helping us to shape
our career. We take this opportunity to thank Shri. Narayan Rao Maanay, Secretary,
Prof. T. J. Rama Murthy, Director, Dr. S. Y. Kulkarni, Additional Director and Principal,
Prof. Eishwar N Maanay, Dean and Dr. Krishnamurthy G. N., Deputy Director for their support
and encouragement to pursue this project. We would like to thank Dr. Chayadevi M L, Professor
and Head, Dept. of Computer Science and Engineering, for her support and encouragement.
We would like to thank our guide Srikanth Hampiholi Dept. of Computer Science and
Engineering, who has been the source of inspiration throughout our project work and has provided
us with useful information at every stage of our project.
Finally, we are thankful to all the teaching and non-teaching staff of Department of Computer
Science and Engineering for their help in the successful completion of our project. Last but not the
least we would like to extend our sincere gratitude to our parents and all our friends who were a
constant source of inspiration.
The Travel Tracker project is a modern, web-based application designed to help users document,
manage, and reflect on their travel experiences. Built using a cutting-edge frontend stack—React,
Vite, and Material Tailwind—the application delivers a fast, responsive, and aesthetically pleasing
user experience. Users can log key travel details such as destinations, dates, descriptions, and
memories, creating a centralized digital travel log.
What sets this project apart is its strong alignment with DevOps principles. It integrates a CI/CD
pipeline, enabling seamless, automated deployment and continuous updates across development and
production environments. Source control is managed via Git, with frequent commits and branching
strategies to support collaborative workflows. Vitest is employed for automated testing, ensuring
reliability and minimizing regressions during feature enhancements or bug fixes. The development
pipeline fosters agility, allowing features and fixes to be integrated, tested, and deployed quickly.
The project demonstrates how the DevOps lifecycle—planning, development, integration, testing,
delivery, and monitoring—can be effectively applied in a real-world scenario. By automating
workflows and incorporating testing and version control from the outset, the Travel Tracker ensures
both development efficiency and product stability. Overall, it serves as a practical implementation of
DevOps culture in modern web application development.
.
TABLE OF CONTENTS
ACKNOWLEDGEMENT I
ABSTRACT II
LIST OF FIGURES
Figure No. Name of Figure Page No.
LIST OF TABLES
Table No. Name of Table Page No.
Rich Content Entry: Enable metadata capture such as titles, descriptions, travel
dates, and optional media.
Responsive UI: Design for compatibility across desktops, tablets, and mobile
devices using responsive frameworks.
RESTful API: Build a scalable backend with CRUD operations for trip data and
user management.
Cloud-Native Hosting: Use services like Vercel for frontend and MongoDB Atlas
for database to ensure global accessibility and horizontal scaling.
Monitoring and Logging: Integrate logging and monitoring tools (e.g., LogRocket,
or simple Node.js loggers) for debugging and performance tuning.
The project ultimately aims to bridge the gap between geographical mapping and digital
journaling, providing users with a seamless, secure, and enjoyable experience as they record
and revisit their travel stories
While this iteration focuses on individual usage and core functionality, future expansions
could include collaborative features, travel analytics dashboards, and third-party
integrations. Its DevOps-centric foundation ensures the system can be rapidly enhanced and
deployed as requirements evolve.
1 Travel Planning Digital travel planners reduce user Chung, N., & Koo,
Applications cognitive load by integrating C. (2018). Journal of
itineraries, maps, and accommodation Travel Research,
details. Modern apps emphasize UX 57(5), 579–593.
and real-time access.
2 Cloud Computing Cloud enables scalable storage, Mell, P., & Grance,
in Web Apps computing, and deployment—ideal T. (2011). The NIST
for travel apps requiring availability, Definition of Cloud
elasticity, and global access. Computing.
4 Authentication & JWT (JSON Web Tokens) provides Jang, J., & Choi, S.
Security (JWT) stateless, secure token-based (2016). International
authentication; suitable for cloud- Journal of Security
hosted services with multiple and Its Applications,
endpoints. 10(2).
8 Geolocation and Trip planners often include maps, Pereira, F. C., &
Mapping directions, and live location sharing Zegras, C. (2013).
Integration via APIs like Google Maps or Transportation
Leaflet.js. Research Record:
Journal, 2322(1).
The application makes use of modern frontend tools like Vite for efficient build processes
and Material Tailwind CSS for responsive design. On the backend, it uses Express.js to
expose secure RESTful APIs and MongoDB Atlas for scalable cloud-based data storage.
3.3. Dependencies
The system relies on several development and deployment dependencies that enable
seamless integration and scalable performance. Key dependencies include:
Node.js (v16 or above): Enables running JavaScript code on the server side and
managing project dependencies.
MongoDB Atlas: Used for persistent, remote storage of user data and location logs.
Vercel: Provides a DevOps-ready deployment solution with built-in CI/CD pipelines
triggered by GitHub pushes.
GitHub: Acts as the central code repository and triggers automated
testing/deployment workflows via GitHub Actions.
Vitest: Enables fast and reliable unit testing, supporting a “test early, test often”
DevOps culture.
By leveraging these dependencies, the project embraces the "shift-left" testing approach and
fosters a continuous feedback loop, which are cornerstones of effective DevOps practices
Interactive Map Logging: Users can add travel logs by selecting points on a map
(internally stored with location metadata). Though map rendering is not based on
Leaflet, the system stores geolocation data for future visualization.
Dynamic Travel Entries: Each entry includes custom fields such as location name,
date of visit, description, and optional image URL.
Responsive and Clean UI: Designed using React and Material Tailwind CSS, the
interface adapts seamlessly across devices and screen sizes.
Backend RESTful API: Built with Express.js, the backend supports all CRUD
operations, enabling seamless frontend-backend interaction.
Testing with Vitest: Modules are tested for correctness during CI pipelines, ensuring
that regressions are caught before reaching production.
CI/CD Integration: Every commit triggers GitHub Actions to run tests, build the
project, and deploy the frontend to Vercel. This automates the entire delivery
pipeline and reduces manual overhead.
The Travel Tracker project was implemented using a modular, full-stack approach built on
the MERN (MongoDB, Express.js, React.js, Node.js) stack. This architecture supports a
scalable, maintainable, and robust application suitable for both personal and professional
travel logging purposes. Central to the methodology was the integration of DevOps
practices, including version control, continuous integration/continuous deployment (CI/CD),
and automated testing.
4.1. Methodology
4.1.1. Development Approach
The project followed the Agile methodology with bi-weekly sprints, enabling iterative
feature development, regular feedback, and continuous improvement. Each sprint cycle
involved planning, coding, testing, and deployment stages.
User stories were defined for features like authentication, travel log creation, and
map visualization.
DevOps pipelines were used to automate builds, tests, and deployments after each
commit.
To streamline the development process, Docker was adopted to containerize the application.
The frontend, backend, and database each ran in isolated containers during development and
testing, improving portability and reproducibility.
User Authentication Secure registration and login system using JWT and bcrypt.
1. Local Development: Work is done on the local machines, creating and testing code
changes.
◦ Vercel (Frontend): Hosts the frontend app (typically for React, Next.js, etc.)
◦ Render (Backend): Hosts the backend API or server (Node.js, Express, etc.)
Typical Workflow:
3. If successful:
connects securely to the MongoDB Atlas cloud database, performing CRUD operations and
complex aggregation queries for expense analysis and trip summaries.
React.js used with functional components and hooks for UI and state management.
Leaflet.js renders a dynamic map, allowing users to drop pins and input related data.
Backend
Database
Deployment
GitHub used for code versioning, team collaboration, and CI/CD pipelines.
Testing is a critical phase in the software development lifecycle, ensuring the application
meets both functional and non-functional requirements. In the Travel Tracker project, testing
was integrated into the DevOps workflow using tools such as Vitest, Docker, and Jenkins,
enabling fast feedback, early bug detection, and consistent deployment quality.
Testing was performed at multiple levels — unit testing, integration testing, and user
acceptance testing — to ensure the system is secure, user-friendly, and performs reliably
across devices and platforms.
Testing Framework: Vitest (a fast unit test framework compatible with Vite)
API & Middleware Testing: Conducted using Vitest + mocking tools like vi.mock
CI Automation: Tests run automatically through a Jenkins pipeline upon every push
to the GitHub repository.
o A Node.js container for running both frontend (Vite + React) and backend
(Express.js) code.
o A MongoDB container using the official image for isolated and persistent
data storage.
o All containers are orchestrated using a docker-compose.yml file for easy local
Vitest Configuration:
o Upon push, Jenkins pulls the latest code and builds the Docker test
container.
This comprehensive testing approach ensures that the application performs reliably under
realistic scenarios and meets expected functional requirements. In summary, the application
passed all validation checks and was found to be stable, responsive, and user-friendly.
The developed Travel Planning and Tracking Web Application successfully achieved the
intended goals of allowing users to register, log in, plan trips, and manage travel-related
data. The backend was built using Node.js and Express, while MongoDB served as the
database. The frontend, implemented with React and Tailwind CSS, was responsive and
worked effectively across devices. The system ensured secure authentication using JSON
Web Tokens (JWT) and protected sensitive routes via a middleware function that validated
tokens and user existence.
During testing, all primary functionalities performed as expected. Users could register and
log in, and the system correctly issued and verified authentication tokens. The trip creation
feature allowed users to add new trips with unique codes and optional favorite status.
Navigation across different pages (e.g., home, dashboard, authentication routes) worked
seamlessly, and invalid URLs redirected users to a custom 404 Not Found page.
Upon successful login, users are redirected to their personalized user profile dashboard,
which serves as the central interface for managing and recording trip-related expenses. This
intuitive interface is designed to simplify group expense tracking by allowing users to input,
view, and analyze financial contributions and outstanding balances in real time.
Once on the dashboard, users can begin by entering detailed expense records categorized
under typical spending areas such as food, transportation, fuel, and other miscellaneous
costs. For each entry, the user specifies the amount spent, the category of the expense, and
most importantly, who paid for the expense. This step ensures accurate attribution of
payments among group members.
The system automatically calculates and displays what each participant owes to others and
what they are owed based on shared expenses. For example, if one member pays for a meal
shared by the group, the application fairly divides the cost and updates the balance sheet
accordingly.
The interface provides a clear summary of the net balances, highlighting how much each
user has paid versus their share of the total expenses. It visually presents a breakdown of all
transactions and simplifies the process of settling debts within the group, minimizing
confusion and the need for manual calculations.
The Compare Trips section of the application offers users a comprehensive visual overview
of their travel history, enabling quick and effective comparisons across multiple trips. This
analytics dashboard presents key metrics in the form of interactive charts and graphs,
providing valuable insights into user spending and activity.
Users can view the total expenses per trip, making it easy to identify which trip incurred the
highest cost. The trip duration chart displays the length of each trip, assisting users in
correlating duration with expenditure. A pie chart breakdown of the expense split for a
selected trip offers a clear picture of how costs were distributed among participants.
Additionally, the dashboard includes a 'Trips Shared with Friends' visualization, which
highlights collaboration and participation levels among different group members.
The middleware was specifically tested to ensure it blocked unauthorized users and only
allowed access when a valid JWT was present in the request cookies. The API layer was
mocked using Vitest, and test cases were written to validate that correct requests were made
for login, registration, and trip-related functionalities. Tests also verified the presence of
critical UI elements such as the Navbar and Footer under appropriate route conditions.
Several challenges were encountered during testing, especially related to the test
environment. Modules like react-apexcharts triggered window is not defined errors, which
were resolved by mocking the component. Since Vitest was used instead of Jest, additional
care was taken to mock ES module imports correctly and set up a proper test environment
using vitest.setup.js. Moreover, routing tests required using MemoryRouter to simulate
different paths and verify conditional rendering logic.Overall, the application performed
reliably, and the testing process confirmed its stability and usability.
Through modular design, effective API integration using Axios, and adherence to good
software practices, the project not only met its functional requirements but also established a
solid foundation for future scalability—such as adding features like real-time trip
collaboration, geolocation-based suggestions, or calendar integration.
The testing and validation process confirmed the application's reliability, and test-driven
development helped catch and fix issues early. Despite minor challenges in mocking third-
party libraries and configuring the test environment in GitHub Codespaces, the project
achieved a stable and functional state.
[2] Fitz, B., & Sussna, J. (2015). Monitoring and Observability in DevOps. IEEE Cloud
Computing, 2(6), 24–29.
[6] Amazon Web Services (AWS). (2023). AWS DevOps Services Overview. Retrieved
from https://aws.amazon.com/devops/
[7] Kim, G., Humble, J., Debois, P., & Willis, J. (2016). The DevOps Handbook: How to
Create World-Class Agility, Reliability, & Security in Technology Organizations. IT
Revolution Press.