Skip to content

A full-stack Task Management Web Application that allows users to securely create, manage, and track their tasks. The application focuses on JWT-based authentication, user-level data isolation, and clean REST API design.

Notifications You must be signed in to change notification settings

Rajudas94/Task-Manager-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 

Repository files navigation

📝 Task Manager Web Application

A full-stack Task Manager Web application built with Flask and React. User can register themselves, login using their credentials, and manage their tasks. The application focuses on JWT authentication, REST APIs, and CRUD operations.

🎥 Walkthrough Video

👉Click here to watch the demo video

✨ Features

🔓 Authentication

  • User registration and login.
  • Password hashing using Bcrypt.
  • JWT based authentication.
  • Protected routes using access token.

📝 Task Management

  • Create Task.
  • View all tasks belonging to the logged in user.
  • Update tasks details and completion status.
  • Delete tasks.
  • Each task is strictly associated with a single user.

🔐 Security

  • JWT token validation for protected endpoints.
  • User Specific task access using token identity.
  • Passwords stored only in hashed form.

💼 Tech Stack

Backend

  • Python
  • Flask
  • REST APIs
  • JWT
  • Gunicorn
  • Nginx

Frontend

  • React

Tools and Deployment

  • Postman
  • Git and Github
  • vercel (frontend)
  • EC2 (backend)

📏 Backend Design

The backend is implemented as a single Flask application file, to keep the system simple and easy. within the file, the application logic is organized into clear logical sections :

  • Configuration & Initialization : Application setup, CORS configuration, environment variable loading, database initialization using SQLAlchemy, JWT Configuration and Password hashing using BCrypt.

  • Data Models : Two database models is defined:

    • User - stores user credentials with securly hashed passwords.
    • Task - stores task details and maintains a foreign key relationship with the user.
  • Authentication Logic : Registration and login endpoints handle user creation and authentication. JWT access tokens are generated upon successful login and is required for accessing protected routes.

  • Protected Task APIs : Task related CRUD endpoints are protected using JWT authentication. The User identity extracted from the token is used to ensure that users can only access and modify their own tasks.

  • Request Flow : requests are validated, authenticated, processed, persisted using SQLAlchemy and returned as JSON response.

✍ Application Flow

  • User registers or logs in.
  • Backend validates credentials and generate a JWT token.
  • Token is sent with each protected API request.
  • Backend extracts user identity from the token.
  • User Specific tasks are created, viewed, updated or deleted.
  • User logs out and the token is deleted from the LocalStorage.

🗂️ Project Structure

  • will paste the structure from github

🔧 API Testing

  • APIs tested using Postman.
  • Authentication and Authorization verified.

🖼️ Project Screenshots

  • Landing Page
LandingPage
  • Register / Login
Login
  • Dashboard
Dashboard
  • Create Task
CreateTask
  • View Tasks
ViewTask
  • Update Tasks
UpdateTask-2 UpdateTask-2
  • Delete Tasks
DeleteTask

🔜 Future Improvements

  • Task Priorities with due-dates.
  • Pagination and Filtering.
  • Redis Caching.
  • Docker Deployment.
  • Performance Testing.

👨🏻‍💻 Developed and maintained By

Raju Das | Backend Engineer.

About

A full-stack Task Management Web Application that allows users to securely create, manage, and track their tasks. The application focuses on JWT-based authentication, user-level data isolation, and clean REST API design.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published