Our end goal is to build a web application similar to www.EventBrite.com that allows a user to organize events by creating online invitations, processing payments and track event related data. It also allows users to view and/or sign up for events. We plan to use Catalog, Identity, Cart and Order Microservices to build the Application. We plan to host the application on Docker containers.
For Assignment 3a our goal was to build a back-end Events Catalog Service with seeded test data stored on local SQL database that lets the user test API options. The output is a key-value pair in JSON format. Examples include viewing picture associated to an event picture number or viewing event details by location or type of event.
For Assignment 3b our goal was to build a back-end Cart service and Token service with integration to WebMvc providing our APIs a web interface where a user can explore our event catalog using event catalog API (built in phase-1). The user can then authenticate and place desired event item in the cart.
For Assignment 3c, the user can now complete the order using Order API for the items which were placed in the cart. The cart automatically empties using the messaging (Event bus) once the user is back to the main page.
Software to be installed to run or test the application
- Visual Studio 2019
- Postman https://www.getpostman.com/
- Docker Desktop https://www.docker.com/products/docker-desktop
Here's a YouTube link showing a demo of the project:
https://www.youtube.com/watch?v=wXy-2fKhtzA
-
Download or Clone the project from the Github and open in Visual Studio.
-
After opening the solution file (MyEventBrite.sln) Please make sure to start the project with Docker compose ( Please go to solutions explorer--> right click on the solution "MyEventBrite" --> Set startup projects--> Choose docker-compose in the drop down and click OK)
-
Please open the docker-compose.yml and replace the IP with your local machine's IP for the below "IdentityUrl" fields in the file.
IdentityUrl: http://192.168.1.2:6701
You can retrive your IP using IPconfig
-
After setting the IdentityUrl fields, Please run the project using Docker-compose and make sure all the containers are running.
The technology stack used to build the application includes:
-
Windows 10 Professional or better
-
Visual Studio 2019 Community Edition or better
-
C#
-
.Net Core
-
Docker Desktop
-
Nuget Packages:
- Microsoft.EntityFrameworkCore (3.1.5)
- Microsoft.EntityFrameworkCore.Relational (3.1.5)
- Microsoft.EntityFrameworkCore.SqlServer (3.1.5)
- Microsoft.EntityFrameworkCore.Tools (3.1.5)
- StackExchange.Redis (2.1.58)
- Newtonsoft.Json (12.0.3)
- Autofac.Extensions.DependencyInjection(6.0.0)
- System.IdentityModel.Tokens.Jwt (6.7.1)
- Microsoft.AspNetCore.Authentication.JwtBearer (3.1.6)
- Microsoft.AspNetCore.Mvc.NewtonsoftJson (3.1.6)
- MassTransit(7.0.2)
- MassTransit.AspNetCore(7.0.2)
- MassTransit.Autofac (7.0.2)
- MassTransit.RabbitMQ (7.0.2)
-
For testing the APIs individually: Postman https://www.getpostman.com/
-
For Messaging : RabbitMQ : http://localhost/15672
-
For checking the order : Stripe https://stripe.com/ Use the below info to sign in to Stripe: email: [email protected] password: KalAcademy@2020 full name: team5
*** Tapasya Khatri *** Adarsha Kuthuru *** Hrudya Nair *** Vidhya Sambandan ***
We'd like to thank our instructor, Kal and all the TAs at KalAcademy for their excellent guidance and support.