adding a line for test 2
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
-
๐ 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
The application uses statically defined roles to control access:
Viewer: Read-only access to projectsUser: Basic project managementManager: Project and customer management privilegesAdministrator: Full access, including system configuration and job title management
- 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
- 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 inappsettings.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.*.jsonto.gitignoreif it contains sensitive values.
-
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>" } } -
Run Database Migrations
dotnet ef database update
-
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