A web application for task management with user authentication.
- Users can register/login via traditional username and password.
- Authenticated users can create, view, update and delete tasks.
Features:
- User Registration & Login.
- JWT Authentication
- CRUD Operations for tasks.
- API endpoints protected for authenticated users only.
- Dashboard to displays tasks with category, priority and status.
Tech Stack: FrontEnd : Angular 16, Angular Material Backend : ASP.Net Core Web API 8 Database: SQL Server Authentication: JWT (JSON Web Token)
Installation & Setup :
Backend
1. Clone the repo.
2. Open 'API' folder in Visual Studio
3. Restore NuGet packages.
4. Set connection string in user-secrets
5. Apply database migrations.
6. Start the Web API project.
FrontEnd
1. Open ui folder in VS Code.
2. Run npm install
3. Run ng serve to start Angular app on http://localhost:4200
Running the App:
- Open http://localhost:4200
- Register a new user or login
- After login, dashboard displays task list.
- Add a new task via "Add Task" button.
- Edit or Delete tasks from the table.
Authentication :
- JWT Token is generated on login.
- Token is sent in HTTP headers for API requests.
- Protected routes are available only for authenticated users.
Database Schema :
- Users Table : UserId, GivenName, Surname, Username, EmailAddress, Password, IsActive
- Task Table : TaskId, UserId, Title, Description, CategoryId, PriorityId, StatusId, DueDate, IsActive
- Category, Priority, Status tables store options for tasks.