Skip to content

Latest commit

ย 

History

119 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

adding a line for test 2

ProjectAlpha

ProjectAlpha is a role-based project management application built with ASP.NET Core MVC and SQL Server. It provides functionality for managing projects, users, and customers, with a clear hierarchy of roles and permissions. The application also supports authentication via GitHub and Google, and includes a built-in mail service.

See a live demo at: https://alphapanel.hajt.se

โœจ Features

  • ๐Ÿ” User Authentication

    • Register and log in with email
    • Social login via GitHub and Google
  • ๐Ÿ—‚๏ธ Project Management

    • Create, update, and delete projects
    • Assign users to projects
  • ๐Ÿ‘ฅ User Management

    • Admins and can add users
    • Role-based access control
  • ๐Ÿง‘โ€๐Ÿ’ผ Customer Management

    • Manage customers and link them to projects
  • ๐Ÿ“› Job Title Management

    • Admins can define and manage job titles
  • ๐Ÿ“ฌ Mail Service

    • Confirmations and Password Reset via Email

๐Ÿ›ก๏ธ Roles

The application uses statically defined roles to control access:

  • Viewer: Read-only access to projects
  • User: Basic project management
  • Manager: Project and customer management privileges
  • Administrator: Full access, including system configuration and job title management

๐Ÿ› ๏ธ Tech Stack

  • Backend / Frontent: ASP.NET Core MVC
  • Database: SQL Server
  • Authentication: ASP.NET Identity + External Providers (GitHub, Google)
  • Mail Service: Built-in email system for notifications and account actions

๐Ÿš€ Getting Started

  1. Clone the repository
    git clone https://github.com/rdunder/ecw_ProjectAlpha.git
    cd ProjectAlpha
    

โš ๏ธ A Note About appsettings.json Never store sensitive information such as passwords, API keys, or connection strings in plain text in appsettings.json, especially in production environments or source control.

Recommended practices:

  • Use User Secrets for local development.
  • Use environment variables or a secure secrets manager (e.g., Azure Key Vault) in production.
  • Add appsettings.*.json to .gitignore if it contains sensitive values.

  1. Configure Appsettings

    /src/Ui.Asp.Mv/appsettings.json
    (Admin Password must meet the requirements: min 8 characters, min one digit, min one uppercase letter, min one special character)
    Email Provider used in this app is Mailjet, you can create an account at: https://www.mailjet.com

     {
       "ConnectionStrings": {
         "LocalDb": "<Database Connectionstring>"
       },
    
      "DefaultAdmin": {
         "Email": "<Email>",
         "Password": "<Password>" 
       },
     
       "Authentication": {
         "Google": {
           "ClientId": "<Client ID>",
           "ClientSecret": "<Client Secret>"
         },
         "Github": {
           "ClientId": "<Client ID",
           "ClientSecret": "Client Secret"
         }
       },
       
       "EmailProvider": {
         "Address": "<Address to Mail Service",
         "Port": <Port as number>,
         "ApiKey": "<ApiKey>",
         "Secret": "<Secret>",
         "SenderEmail": "<Sender Email>"
       }
     }

    /src/Data/appsettings.json

    {
      "ConnectionStrings": {
        "LocalDb": "<Database Connectionstring>"
      }
    }
  2. Run Database Migrations

    dotnet ef database update
    
  3. Run the Application

    dotnet run
    

When the application starts first time with clean database, a default admin will be created The credentials will be taken from appsettings.json

Adding this to get a difference against main, just to be able to create PR

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages