Skip to content

This project is a full-stack Todo Application built using Flask, SQLAlchemy, and JWT Authentication. It demonstrates how to create a RESTful API, perform CRUD operations, integrate external APIs, and manage user authentication securely.

Notifications You must be signed in to change notification settings

GowthamSelvaraj123/flask-todo-application-with-jwt-authentication-external-api-integration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“Œ Flask API Project – User & Todo Management

Python Flask Swagger Database


πŸš€ Project Overview

This project is a Flask-based REST API application that demonstrates modern backend development practices with:

  • User Authentication & Password Security (using Bcrypt with OOPs encapsulation)
  • Todo Management system with relational mapping
  • Fetching external data from JSONPlaceholder API and saving into local database
  • Complete CRUD operations for both Users & Todos
  • API Documentation powered by Swagger UI


πŸ› οΈ Technologies Used

BackendFlask, Flask-RESTful, Blueprints
DatabaseSQLAlchemy (SQLite/MySQL/Postgres ready)
SecurityFlask-Bcrypt for password hashing
DocumentationSwagger UI
ConceptsOOPs Principles (Encapsulation, Methods in Classes, Reusable Models)

πŸ“‚ Project Structure

project/
│── app/
β”‚   β”œβ”€β”€ __init__.py        # App Factory
β”‚   β”œβ”€β”€ models.py          # User & Todo Models (OOPs applied)
β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”œβ”€β”€ api.py         # Todo APIs (CRUD + External API)
β”‚   β”‚   └── user.py        # User Registration & Authentication
β”‚   β”œβ”€β”€ docs.py            # Swagger Documentation
β”‚
│── migrations/            # Database migrations
│── requirements.txt       # Dependencies
│── run.py                 # Entry point

πŸ“Œ API Features

  • User APIs: Register, Login, Password Security with Hashing
  • Todo APIs: Create, Read, Update, Delete Todos
  • External Data: Fetch todos from JSONPlaceholder and save into DB
  • Swagger: Interactive API docs at /swagger

πŸ”‘ Example API Endpoints

GET  /api/todo            # Fetch all todos (from DB)
POST /api/todo/fetch      # Fetch & Save from JSONPlaceholder
POST /api/users/register  # Create a new user
POST /api/users/login     # Authenticate user

About

This project is a full-stack Todo Application built using Flask, SQLAlchemy, and JWT Authentication. It demonstrates how to create a RESTful API, perform CRUD operations, integrate external APIs, and manage user authentication securely.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages