/DillonColeman_PortfolioWebsite_Backend

A .NET 7 API for storing contact information and user data, including CRUD operations, login/logout functionality, using a MySQL database, and hosted on Azure.

Primary LanguageHTMLMIT LicenseMIT

PortfolioBackend ๐Ÿ“

A .NET 7 API for managing contact information and user data.

Introduction ๐ŸŒ

PortfolioBackend is a versatile API designed for storing contact details and user information. Features include CRUD operations, authentication, and hosting support on Azure. Explore our Documentation or access the /Documentation endpoint locally. Note: The Postman collection is only available in production here.

Swagger UI is available here.

Coming Soon: Our frontend for this project. Stay Tuned!

Getting Started ๐Ÿš€

Want to get a local copy up and running? Follow these steps:

  1. Setup:

    • Clone this repository.
    • Launch the solution in Visual Studio.
    • Manage your User Secrets for the PortfolioBackend project.
  2. User Secrets Configuration:

  3. Run:

    • Navigate to PortfolioBackend terminal.
    • Use the dotnet watch run command or hit the green play button.
  4. Tests:

    • Open another PortfolioBackend terminal.
    • Run tests using the dotnet test command.
  5. Prerequisites:

  6. Installation & Production:

    • A comprehensive guide for production setup is available here.
    • A Key Vault guide can be found here.

Usage ๐Ÿ–ฅ

Portfolio Sequence Diagram

API Endpoints ๐Ÿ“Œ

Swagger UI is available here.

Running Tests ๐Ÿงช

  • Use Visual Studio's Test Explorer.
  • Check Test Discovery status.
  • Hit the green play button.

Future update will introduce test containers.

Deployment ๐Ÿšข

We use Docker and Azure Container Repository for deployment. Navigate here for detailed deployment strategies.

Built With ๐Ÿ› 

  • Tokenization: BCrypt
  • Email: MailKit
  • Logging: Serilog
  • Testing: NUnit/Specflow
  • Documentation: Swagger
  • Deployment: Docker/Azure Container Registry
  • Database: MySql
  • ORM: Entity Framework Core
  • Authentication: JWT
  • Versioning: Asp.Versioning
  • Hosting: Azure App Service
  • Monitoring: Azure Application Insights

Contributing ๐Ÿค

Open to suggestions and feedback. Contact me for queries!

Versioning ๐Ÿท

Our Branching strategy:

Main branch contains latest version.
Rollback branch contains the last version.
Develop branch contains the only branch allowed to be worked on.
Feature/Bugfix branches are created from Develop and merged back into Develop.

Updates will be incremented in decimal form until reaching next complete version. Each whole number represents a major update..

Authors โœ๏ธ

Dillon Coleman

License ๐Ÿ“œ

This project is under the MIT license.

Acknowledgments ๐Ÿ™

Thank you for exploring PortfolioBackend. Happy coding! ๐Ÿ’ป