{"id":30196253,"url":"https://github.com/kajasanjeevkumar/task-manager","last_synced_at":"2026-04-15T14:31:56.049Z","repository":{"id":307857569,"uuid":"1030908586","full_name":"kajasanjeevkumar/Task-Manager","owner":"kajasanjeevkumar","description":"A full-stack multi-user task manager with role-based access, JWT auth, task CRUD, filtering, and responsive UI using SQLite.","archived":false,"fork":false,"pushed_at":"2025-08-02T15:58:51.000Z","size":195,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-02T17:40:56.313Z","etag":null,"topics":["dotnet","jwt-authentication","nextjs","sqlite"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kajasanjeevkumar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-02T15:35:33.000Z","updated_at":"2025-08-02T15:58:54.000Z","dependencies_parsed_at":"2025-08-02T17:51:06.224Z","dependency_job_id":null,"html_url":"https://github.com/kajasanjeevkumar/Task-Manager","commit_stats":null,"previous_names":["kajasanjeevkumar/task-manager"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/kajasanjeevkumar/Task-Manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajasanjeevkumar%2FTask-Manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajasanjeevkumar%2FTask-Manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajasanjeevkumar%2FTask-Manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajasanjeevkumar%2FTask-Manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kajasanjeevkumar","download_url":"https://codeload.github.com/kajasanjeevkumar/Task-Manager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajasanjeevkumar%2FTask-Manager/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270183606,"owners_count":24541341,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotnet","jwt-authentication","nextjs","sqlite"],"created_at":"2025-08-13T05:17:19.745Z","updated_at":"2026-04-15T14:31:56.014Z","avatar_url":"https://github.com/kajasanjeevkumar.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Task Manager Application\r\n\r\n## Project Title \u0026 Description\r\nThe **Task Manager Application** is a full-stack task management application designed to help users organize their daily tasks efficiently. It includes features like adding, editing, deleting, and marking tasks as completed, ensuring better productivity and time management. The backend is built using **ASP.NET Core** with **Entity Framework**, while the frontend is developed using **Next.js** for a responsive and interactive user interface.\r\n\r\n---\r\n\r\n## Installation Instructions\r\n\r\n### Backend Setup (TodoApi)\r\n1. Clone the repository:\r\n    ```bash\r\n    git clone https://github.com/gh-kaja-kumar/todo_Kaja.git\r\n    ```\r\n2. Navigate to the backend directory:\r\n    ```bash\r\n    cd Task-Manager/Todo.Backend\r\n    ```\r\n3. Restore NuGet packages:\r\n    ```bash\r\n    dotnet restore\r\n    ```\r\n4. Apply migrations and seed data:\r\n    ```bash\r\n    dotnet ef database update\r\n    ```\r\n5. Run the backend server:\r\n    ```bash\r\n    dotnet run\r\n    ```\r\n    The backend will be available at `http://localhost:5025` (change the port if yours is different).\r\n\r\n---\r\n\r\n### Frontend Setup (todo-frontend)\r\n1. Navigate to the frontend directory(Open new terminal):\r\n    ```bash\r\n    cd Task-Manager/TaskManager.Frontend\r\n    ```\r\n2. Copy the `.env.example` file to `.env.local`:\r\n    ```bash\r\n    cp .env.example .env.local\r\n    ```\r\n3. Open the `.env.local` file and ensure the `NEXT_PUBLIC_API_BASE_URL` is set to your backend's base URL:\r\n    ```bash\r\n    NEXT_PUBLIC_API_BASE_URL=http://localhost:5025/api\r\n    ```\r\n4. Install dependencies:\r\n    ```bash\r\n    npm install\r\n    ```\r\n5. Start the development server:\r\n    ```bash\r\n    npm run dev\r\n    ```\r\n    The frontend will be available at `http://localhost:3000`.\r\n\r\n---\r\n\r\n### Notes:\r\n- **Environment Variables**:\r\n  - The `.env.example` file contains a template for environment variables. Ensure you copy it to `.env.local` and update the values as needed.\r\n- **Backend Port**:\r\n  - If your backend runs on a different port, update the `NEXT_PUBLIC_API_BASE_URL` in the `.env.local` file accordingly.\r\n\r\n---\r\n\r\n **Test the Application**:\r\n   - Register a new user or log in with an existing account.\r\n   - Add, edit, delete, and manage tasks.\r\n   - If you are an admin, test admin-specific features like managing other users' tasks.\r\n   - To test the admin portal, use the following credentials:\r\n     - **Username**: `admin`\r\n     - **Password**: `admin`\r\n   - For backend testing through Swagger, navigate to:\r\n     - [http://localhost:5025/swagger](http://localhost:5025/swagger)\r\n\r\n---\r\n\r\n## Features\r\n\r\n1. **Add New Tasks**  \r\n   Users can create tasks with title, description, due date, priority, and category.\r\n\r\n2. **View Tasks**  \r\n   Tasks are displayed in a user-friendly list with filtering and progress tracking.\r\n\r\n3. **Edit \u0026 Delete Tasks**  \r\n   Users can edit or delete their own tasks. Admins can manage all tasks.\r\n\r\n4. **Mark Tasks as Completed**  \r\n   Users can track task completion via checkboxes.\r\n\r\n5. **Filter \u0026 Sort Tasks**  \r\n   Filter tasks by:\r\n   - **Status** (completed, incomplete, overdue)\r\n   - **Priority** (Low, Normal, High)\r\n   - **Category** (e.g., Work, Personal)  \r\n   Tasks are also sorted by **Due Date** by default.\r\n\r\n6. **Overdue Highlight**  \r\n   Overdue tasks are visually marked with a red “Overdue” label for quick recognition.\r\n\r\n7. **Prioritize Tasks**  \r\n   Toggle between priority levels using the star icon.\r\n\r\n8. **Multi-User Support**  \r\n   Each user has their own tasks. JWT-based login ensures only authenticated users access their data.\r\n\r\n9. **Admin Mode**  \r\n   Admins can:\r\n   - View all tasks \r\n   - View and manage tasks of any specific user via username or `/admin/{userId}`\r\n   - Edit or delete any task (without restrictions)\r\n   - Assign tasks to other users\r\n\r\n10. **Authentication (JWT)**  \r\n    Secure login and logout with JSON Web Tokens.\r\n\r\n11. **Responsive UI**  \r\n    Clean, mobile-friendly layout using Tailwind CSS.\r\n\r\n12. **Persistent Storage**  \r\n    All data is stored in a SQLite database using a .NET backend.\r\n\r\n---\r\n\r\n## Usage\r\n\r\nUsers can interact with the application by:\r\n\r\n1. **Register**  \r\n   New users can register by visiting the registration page before logging in.\r\n   \u003cimg width=\"1883\" height=\"649\" alt=\"image\" src=\"https://github.com/user-attachments/assets/9e4032a6-bfca-4f30-a7cf-89ed3f172715\" /\u003e\r\n\r\n2. **Login**\r\n    Log in to access your personalized task dashboard as Admin/User. Auth is handled via JWT.\r\n    \u003cimg width=\"1649\" height=\"457\" alt=\"image\" src=\"https://github.com/user-attachments/assets/068704b8-05fa-40a2-8282-46c22f9a6c94\" /\u003e\r\n\r\n3. **View Tasks**  \r\n   Your tasks are listed and sorted by due date with clear status and priority indicators.\r\n   \u003cimg width=\"1671\" height=\"709\" alt=\"image\" src=\"https://github.com/user-attachments/assets/decd66a5-af25-44fe-94cc-ea2492eb267e\" /\u003e\r\n\r\n4. **Create a Task**  \r\n   Click on \"+ Add New Task\" and enter task details like title, due date, category, and priority.\r\n   \u003cimg width=\"1357\" height=\"756\" alt=\"image\" src=\"https://github.com/user-attachments/assets/c2e13174-b606-4b0e-a481-5ad61653c09b\" /\u003e\r\n\r\n5. **Filter by Status, Category, or Priority**  \r\n   Use the filter bar to quickly find tasks based on your preferences.\r\n   \u003cimg width=\"1409\" height=\"708\" alt=\"image\" src=\"https://github.com/user-attachments/assets/7b9ed3e1-2382-41ad-8301-41d2e4c700f5\" /\u003e\r\n\r\n8. **Track Completion**  \r\n   Mark tasks as completed using the checkbox. Progress is displayed via a progress bar.\r\n\r\n9. **Edit \u0026 Delete Tasks**  \r\n   You can edit or delete your own tasks anytime. Admins can manage tasks for any user.\r\n\r\n10. **Overdue Tasks**  \r\n   Tasks past their due date are automatically labeled as **Overdue** for visibility.\r\n\r\n11. **Admin Actions**  \r\n   Admins can access `/admin/{userId}` or via username to manage another user’s tasks fully.\r\n   \u003cimg width=\"1906\" height=\"500\" alt=\"image\" src=\"https://github.com/user-attachments/assets/e31b7657-f648-41e2-a17f-e7ced3cb5d9d\" /\u003e\r\n\r\n12. **Logout**  \r\n   End your session securely using the logout button, which clears your token from local storage.\r\n\r\n---\r\n\r\n## Technologies Used\r\n\r\n- **Frontend**: Next.js, React, Tailwind CSS\r\n- **Backend**: ASP.NET Core, Entity Framework Core\r\n- **Database**: SQLite\r\n- **Authentication**: JWT (JSON Web Tokens)\r\n\r\n---\r\n\r\n## How GitHub Copilot Was Used\r\n\r\nGitHub Copilot was instrumental in the development process by:\r\n- Auto-generating boilerplate code for controllers, models, and components.\r\n- Suggesting efficient function implementations for task management and filtering.\r\n- Improving code readability and naming conventions.\r\n- Speeding up repetitive tasks like creating state management logic and API endpoints.\r\n\r\n---\r\n\r\n## Project Structure\r\n\r\n### Backend (`TodoApi`)\r\n```plaintext\r\nTodoApi/\r\n├── .github/                # GitHub workflows and configurations\r\n├── Controllers/            # API controllers\r\n│   ├── UsersController.cs  # Handles user-related endpoints\r\n│   ├── TodoItemsController.cs # Handles task-related endpoints\r\n│   ├── AdminController.cs  # Handles admin-specific endpoints\r\n├── Data/                   # Database context and configurations\r\n│   ├── TodoDbContext.cs    # Entity Framework database context\r\n├── DTOs/                   # Data Transfer Objects\r\n│   ├── RegisterDto.cs      # DTO for user registration\r\n│   ├── LoginDto.cs         # DTO for user login\r\n│   ├── TodoItemDto.cs      # DTO for task data\r\n│   ├── AdminDto.cs         # DTO for admin-specific actions\r\n├── Migrations/             # EF Core migrations\r\n│   ├── SeededData.Designer.cs # Migration for seeded data\r\n│   ├── InitWithRoles.cs    # Initial migration with roles\r\n│   ├── TodoDbContextModelSnapshot.cs # Snapshot of the database schema\r\n├── Models/                 # Database models\r\n│   ├── AppUser.cs          # User model\r\n│   ├── TodoItem.cs         # Task model\r\n├── Services/               # Business logic services\r\n│   ├── IUserService.cs     # Interface for user service\r\n│   ├── UserService.cs      # Implementation of user service\r\n│   ├── IAdminService.cs    # Interface for admin service\r\n│   ├── AdminService.cs     # Implementation of admin service\r\n├── Properties/             # Project properties\r\n│   ├── launchSettings.json # Launch settings for development\r\n├── appsettings.json        # Application settings\r\n├── appsettings.Development.json # Development-specific settings\r\n├── Program.cs              # Entry point for the backend application\r\n├── TodoApi.csproj          # Project file for the backend\r\n├── TodoApi.http            # HTTP file for testing API endpoints\r\n├── todo.db                 # SQLite database file\r\n```\r\n\r\n### Frontend (`todo-frontend`)\r\n```plaintext\r\ntodo-frontend/\r\n├── .next/                  # Next.js build output\r\n├── public/                 # Static assets\r\n├── src/                    # Source code\r\n│   ├── app/                # Application pages and components\r\n│   │   ├── components/     # Reusable UI components\r\n│   │   │   ├── TaskList.tsx # Component for displaying task lists\r\n│   │   │   ├── TaskItem.tsx # Component for individual task items\r\n│   │   ├── hooks/          # Custom React hooks\r\n│   │   │   ├── useTasks.ts # Hook for fetching tasks\r\n│   │   │   ├── types.ts    # Type definitions\r\n│   │   ├── edit-task/      # Edit task page\r\n│   │   │   ├── [id]/page.tsx # Dynamic route for editing tasks\r\n│   │   ├── signup/         # Signup page\r\n│   │   │   ├── page.tsx    # Signup form\r\n│   │   ├── login/          # Login page\r\n│   │   │   ├── page.tsx    # Login form\r\n│   │   ├── admin/          # Admin pages\r\n│   │   │   ├── assign-task/ # Assign task page\r\n│   │   │   │   ├── page.tsx\r\n│   │   │   ├── [userId]/   # Admin user-specific tasks\r\n│   │   │   │   ├── page.tsx\r\n│   │   │   ├── page.tsx    # Admin dashboard\r\n│   ├── axiosConfig.ts      # Axios configuration for API requests\r\n├── .env.example            # Example environment variables\r\n├── .env.local              # Local environment variables\r\n├── package.json            # Project dependencies\r\n├── tsconfig.json           # TypeScript configuration\r\n├── next.config.ts          # Next.js configuration\r\n├── README.md               # Frontend-specific README\r\n```\r\n\r\n\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkajasanjeevkumar%2Ftask-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkajasanjeevkumar%2Ftask-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkajasanjeevkumar%2Ftask-manager/lists"}