A Full-Stack Web Application for discovering, creating and attending events and activities.
It ships with an ASP.NET Core REST API Backend, a React Front-End styled with Tailwind CSS, and MySQL Data Persistence.
-
Browse & Search - Explore and filter events by name, price bracket, date range, address, user and/or category.
-
Engage with Postings - Set and change your attendance status, as well as give ratings to events/activities.
-
Organizer Tools (Create / Delete) - Share and let other people know and attend events you are organizing by uploading images, sharing ticket types and prices and listing important information.
-
Ticket Operations - Create, remove and book tickets.
-
Email Notifications - Recieve personal account management confirmation emails.
| Layer | Technology |
|---|---|
| Front-End | React, Vite, React-Router, Axios |
| Styling | Tailwind CSS |
| Backend | ASP.NET Core Web API, Entity Framework Core, MySQL, Cloudinary |
| Security | JWT Bearer Tokens |
| SendGrid REST API |
git clone https://github.com/vasilev17/event-manager.git- Create a
appsettings.Development.jsonfile - Copy the connection string part from
appsettings.jsoninto it - Enter the missing values from the connection string for your MySQL server installation
- Run
Update-Databasecommand to update your database - Set up JWT
5.1 Copy the "Jwt" section fromappsettings.jsontoappsettings.Develoment.json
5.2 Generate a signing key and put it in yourappsettings.Development.json
5.3 Put token duration in time span format
5.4 Issuer and audience are the localhost addresses of the back-end and front-end - Set up the email sender
6.1 Go to Emails with C# & SendGrid API and follow the steps for creating an API key
6.2 Copy the "EmailSender" section fromappsettings.jsontoappsettings.Develoment.json
6.3 Ener the needed keys.
cd event-manager/FrontEndApp
npm install
npm run dev
Unit and Integration tests are available in the /EventManager/EventManager.Tests directory