A project for learning purposes built by Michael Zaslavsky.
Table of Contents
Social Event Manager (SEM) is a social network for organizing events.
Some images for demonstration:
- Install .NET Core
https://dotnet.microsoft.com/download
- Install SQL Server
https://www.microsoft.com/en-us/sql-server/sql-server-downloads
- Install Docker 19.03.0+
https://docs.docker.com/engine/install/
-
Clone the repo
git clone https://github.com/MichaelZaslavsky/social-event-manager.git
-
Open folder
%APPDATA%/Microsoft/UserSecrets
-
Create "UserSecrets" folder if not exists
-
Enter "UserSecrets" folder
-
Go into the created folder and create a file
secrets.json
-
Edit the created file. You need to add
Kestrel:Certificates
key
For example:{ "Kestrel:Certificates:Development:Password": "5cb62bfd-2da5-44f2-964f-d2b0c9af935d" }
-
-
Create
.env
file in the same folder wheredocker-compose.yml
file is and add the following keys:ConnectionStrings__SocialEventManager=Server=sql-server-database;Database=SocialEventManager;User Id=db_admin;Password=${DB_ADMIN_PASSWORD};MultipleActiveResultSets=True;Encrypt=False; ConnectionStrings__SocialEventManagerHangfire=Server=sql-server-database;Database=SocialEventManagerHangfire;User Id=db_admin;Password=${DB_ADMIN_PASSWORD};MultipleActiveResultSets=True;Encrypt=False; ConnectionStrings__SocialEventManagerTest=Server=sql-server-database;Database=SocialEventManagerTest;User Id=sa;Password=${SA_PASSWORD};MultipleActiveResultSets=True;Encrypt=False; DB_USER=<SomeDBUser> DB_PASSWORD=<SomePassord2> Email__Host=smtp.gmail.com Email__Password=<AppPassword> Email__UserName=<SomeEmail> Jwt__Key=<JwtSecretKey> HangfireSettings__Password=<SomePassword3> HangfireSettings__UserName=<SomeUserName> REDIS_MASTER_PASSWORD=<SomePassword4> REDIS_REPLICA_PASSWORD=<SomePassword5> SA_PASSWORD=<SomePassword1>
-
Make sure Docker is installed in your computer and is running
-
Set docker-compose as startup project and run it
- You may open the Swagger https://localhost:8080/swagger/index.html
- You may open Serilog http://localhost:5341/#/events
✔️ Projects Architecture
✔️ .editorconfig file
✔️ Analyzers including StyleCop & Roslynator analysis
✔️ Swagger documentation
✔️ .NET Core DI setups
✔️ Mapster / AutoMapper
✔️ Logs with Serilog
✔️ Exceptions Handling
✔️ Dapper ORM
✔️ Repository pattern
✔️ Rate limiting
✔️ Evolve migrations
✔️ Hangfire - Background jobs
✔️ Data annotations middleware
✔️ Basic tests with xUnit
✔️ Secrets
✔️ UnitOfWork
✔️ In memory database tests
✔️ Docker
✔️ Docker Compose
✔️ Health Checks
✔️ Distributed cache with Redis
✔️ Response compression
✔️ SignalR
✔️ Versioning
✔️ Authorization / Authentication
❌ Security checks
❌ Allow media binders
❌ REST
❌ Elasticsearch
❌ User profile
❌ Event
❌ Category
❌ Business house
❌ Facebook login
❌ Google Maps
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT license. See LICENSE
for more information.
Michael Zaslavsky - https://www.linkedin.com/in/michael-zaslavsky
Project Link: https://github.com/MichaelZaslavsky/social-event-manager