ProjectACE is a small application designed for managing projects and tasks in teams. It allows user registration and login, creating projects, adding tasks to projects, and managing team members.
Backend:
- C#
- .NET 8.0
- Entity Framework Core
- ASP.NET Core
- PostgreSQL
- JWT
Frontend:
- React
- NextJS
- Tailwind
- DaisyUI
- Database Configuration:
-
Set up a PostgreSQL database and update the connection string in
appsettings.json:{ "ConnectionStrings": { "DefaultConnection": "Host=localhost;Username=postgres;Password=postgres;Database=TSM;Port=5434" } }Make sure to replace the default connection string with proper connection details
-
- JWT Configuration:
-
In
appsettings.json, configure the JWT settings:{ "Jwt": { "Issuer": "http://localhost:5246", "Audience": "http://localhost:5246", "SigningKey": "YourSecretKeyThatIsLongAndSecure" } }Replace
YourSecretKeyThatIsLongAndSecurewith a secure secret key.
-
The API documentation is automatically generated by Swagger and is available at: https://localhost:7056/swagger or http://localhost:5002/swagger after starting the application.
POST /api/account/register: Registers a new user.POST /api/account/login: Logs in an existing user.GET /api/account/me: Gets the current user's info.PUT /api/account/change-password: Changes the password of signed in user.PUT /api/account/update-names: Updates first and last name.
POST /api/assignments/{projectId}: Creates a new assignment for the specified project.GET /api/assignments: Gets all assignments.GET /api/assignments/{id}: Gets assignment by id.GET /api/assignments/my-assignments: Gets all assignments assigned to the current user.GET /api/assignments/projects/{projectId}: Gets all assignments for the specific project.PUT /api/assignments/{id}: Updates an assignment.DELETE /api/assignments/{id}: Deletes an assignment.
POST /api/assignment-users/{assignmentId}/{memberId}: Adds a user to an assignment.GET /api/assignment-users/{assignmentId}: Gets all users of an assignment.DELETE /api/assignment-users/{assignmentId}/{memberId}: Removes a user from assignment
POST /api/projects: Creates a new project.GET /api/projects: Gets all projects.GET /api/projects/{id}: Gets a project by ID.GET /api/projects/my-projects: Gets all projects of the current user.PUT /api/projects/{id}: Updates a project.DELETE /api/projects/{id}: Deletes a project.
POST /api/project-teams/{projectId}/{userId}: Adds a user to a project.GET /api/project-teams/{projectId}: Gets all members of a project.DELETE /api/project-teams/{projectId}/{userId}: Removes a user from project.
GET /api/users: Gets all users.GET /api/users/{id}: Gets a user by id.
