A full-stack task management application built with React, TypeScript, and ASP.NET Core. This application allows users to manage their tasks with features like task creation, editing, deletion, and filtering.
- User registration with email and password
- Secure login functionality
- JWT-based authentication
- Protected routes
- Create, read, update, and delete tasks
- Mark tasks as complete/incomplete
- Set due dates for tasks
- Add descriptions to tasks
- Filter by status (All/Completed/Pending)
- Filter by due date:
- Due Today
- Due This Week
- Due This Month
- Modern, responsive design
- Dark theme
- Intuitive task management interface
- Real-time updates
- Loading states and error handling
- React
- TypeScript
- Tailwind CSS
- React Hook Form
- Axios for API calls
- React Context for state management
- ASP.NET Core
- Entity Framework Core
- JWT Authentication
- SQL Server Database
- AutoMapper
- Swagger for API documentation
- Node.js (v14 or higher)
- .NET 6.0 SDK or higher
- SQL Server
- Visual Studio 2022 or Visual Studio Code
- Clone the repository:
git clone https://github.com/ahmedafe1/taskManager.git- Set up the backend:
cd TaskManagementSystem.API
dotnet restore
dotnet build- Configure the database:
- Update the connection string in
appsettings.json - Run the database migrations:
dotnet ef database update- Start the backend server:
dotnet run- Set up the frontend:
cd task-management-frontend
npm install- Start the frontend development server:
npm run devThe application will be available at http://localhost:3000
POST /api/auth/register- Register a new userPOST /api/auth/login- Login with email and password
GET /api/tasks- Get all tasks for the authenticated userPOST /api/tasks- Create a new taskPUT /api/tasks/{id}- Update a taskDELETE /api/tasks/{id}- Delete a task
task-management/
├── task-management-frontend/
│ ├── src/
│ │ ├── components/
│ │ │ ├── auth/
│ │ │ └── tasks/
│ │ ├── contexts/
│ │ ├── services/
│ │ └── types/
│ └── public/
└── TaskManagementSystem.API/
├── Controllers/
├── Models/
├── Services/
├── Data/
├── DTOs/
├── Helpers/
└── appsettings.json
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For any questions or suggestions, please open an issue in the repository.