Skip to content

MichaelZaslavsky/social-event-manager

Repository files navigation

.NET package CodeQL Codacy Badge Dependabot auto-merge Quality Gate Status Code Smells Security Rating Bugs Vulnerabilities Duplicated Lines (%) Lines of Code Coverage Status GitHub last commit GitHub repo size GitHub code size in bytes GitHub

Social Event Manager

A project for learning purposes built by Michael Zaslavsky.

Table of Contents
  1. About The Project
  2. Getting Started
  3. Roadmap
  4. Contributing
  5. License
  6. Contact

About The Project

Social Event Manager (SEM) is a social network for organizing events.

Some images for demonstration:

Create Event: Create Event

Events Page: Main

Search Events: Search Events

My Events: My Events

Built With

Getting Started

Prerequisites

  1. Install .NET Core
    https://dotnet.microsoft.com/download
  2. Install SQL Server
    https://www.microsoft.com/en-us/sql-server/sql-server-downloads
  3. Install Docker 19.03.0+
    https://docs.docker.com/engine/install/

Run

  1. Clone the repo

    git clone https://github.com/MichaelZaslavsky/social-event-manager.git
  2. 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"
      }
  3. Create .env file in the same folder where docker-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>
  4. Make sure Docker is installed in your computer and is running

  5. Set docker-compose as startup project and run it

Roadmap

Infrastructures

✔️ 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

✔️ Email

✔️ Authorization / Authentication

❌ Security checks

❌ Allow media binders

❌ REST

❌ Elasticsearch

Features

❌ User profile

❌ Event

❌ Category

❌ Business house

❌ Facebook login

❌ Google Maps

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT license. See LICENSE for more information.

Contact

Michael Zaslavsky - https://www.linkedin.com/in/michael-zaslavsky

Project Link: https://github.com/MichaelZaslavsky/social-event-manager

About

A project for learning purposes built by Michael Zaslavsky

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks