EVENT APP CASE STUDY
1 Name of the Event App
Project
Develop an Events Application that allows to view different events happening around,
and save events to favorites/wishlist.
The application needs to fetch event data by registering with the following API and
get API Key required to call the API.
[Link]
2 Objective
Sample API:
To get all event list:
[Link]
To get product details basis productId:
[Link]
1) User Interface (UI) should achieve the following:
a) User Registration
b) User Login
Functional c) List all events
3 Requirements d) View event details basis event id
e) Add an event to your favorite list
f) View favorite events
g) UI should be responsive which can run smoothly on various devices
h) The UI should be appealing and user friendly
1) The app should be able to load event data quickly and smoothly, even on low-end
devices.
2) The app should be able to handle a large number of users without slowing down
Non-
or crashing.
4 functional
3) The app should be easy to use and navigate, even for users with no prior
Requirements
experience with event streaming apps.
4) The app should protect user data from unauthorized access, modification, or
deletion.
1) Application should be developed using Microservices in the Backend. JWT tokens
to be used for securing the Backend.
2) Frontend should be developed using Angular.
3) Microservice patterns like API Gateway, Service Discovery, Microservice
communication, Configuration Server should be used.
Technical 4) Comprehensive Unit tests and integration tests with coverage should be
5
Requirements implemented to validate the functionality of the Application.
5) The application should be integrated with SQL, NoSQL databases.
6) SCM like Gitlab to be used for regularly committing the source code.
SCM : Gitlab
Middleware : Dotnet
Tools and Frontend : Angular
6 Technologies Data Store : MySQL, NoSQL
to be used Testing : nUnit, Jasmine
CI : Gitlab/Jenkins
Confidential StackRoute© An NIIT Venture Page 1 of4
All Information within thisdocumentisIntellectual property of StackRoute(NIITLtd). No partof thisdocument or theprogram design or
program structure mentioned within can be shared or usedwithin any organization withoutthepermission of StackRoute(NIITLtd).
API Documentation : Swagger
Message Bus : RabbitMQ/Kafka
Containerization : Docker, Docker Compose
User Stories
1 As a user, I should be able to register with the application so that I can login and use the
functionalities of the application.
2 As a user, I should be able to login with my username and password in order to access
the functionalities of the application.
3 As a user, I should be able to view all event details using Third Party API.
4 As a user, I should be able to save event details to a wishlist/favourite so that I can access
them later.
As a user, I should be able to access event details saved to my wishlist/favourite.
5
6 As a user, I should be able to delete event details saved to my wishlist/favourite.
The responsibilities of the microservices in the above figure are as follows:
User Profile Service: This Service is responsible for storing user registration details. The Service
publishes the user credentials sent as part of registration to the message bus and stores the remaining
user profile information in the database.
Authentication Service: This Service is responsible for consuming user credential from the message bus
and storing it in the database. When a user logs in, this service validates the login credentials against
the credentials stored in the database. If the credentials matches, this service generates a JWT token
and sends back as response, else an error message is sent.
Event Service: This Service is responsible for accessing an external event API to fetch all event details
and returning back the list of event details as response.
Wishlist Service: This Service is responsible for storing event details wish listed by users in the
database.
API Gateway: This Service acts as the entry point of the system. It intercepts all the requests and
validates the JWT Token before routing it to the appropriate microservices.
Eureka Server: This Service acts as a service registry where all the other microservices registers during
startup for discoverability.
Config Server: This Service acts as a centralized location to store the configuration of the other
microservices of the system.
Recommended Steps to complete the Case Study
Step 1: Understand the Case Study
Step 2: Identify the Data Model and draw the data flow diagram
Confidential StackRoute© An NIIT Venture Page 2 of4
All Information within thisdocumentisIntellectual property of StackRoute(NIITLtd). No partof thisdocument or theprogram design or
program structure mentioned within can be shared or usedwithin any organization withoutthepermission of StackRoute(NIITLtd).
Step 3: Draw the UI Wireframes
Step 4: Create the Boilerplate
Step 5: Setup CI/CD Pipeline
Step 6: Implement and write test cases for the backend
Step 7: Implement and write test cases for the frontend
Step 8: Integrate the frontend with the backend
Step 9: Dockerize all services of the application
Step 10: Configure Docker Compose for Container Orchestration
Confidential StackRoute© An NIIT Venture Page 3 of4
All Information within thisdocumentisIntellectual property of StackRoute(NIITLtd). No partof thisdocument or theprogram design or
program structure mentioned within can be shared or usedwithin any organization withoutthepermission of StackRoute(NIITLtd).