A Kanban Board application built with Node.js, Express, Sequelize, PostgreSQL, and React. This app allows users to manage tasks efficiently using a drag-and-drop interface with authentication and real-time updates.
- 🔐 User Authentication (JWT-based)
- 🏗️ Task Management (CRUD operations)
- 📦 Sequelize ORM for PostgreSQL
- 🖥 React Frontend
- 🌐 GraphQL API with Node.js & Express
- 📆 Drag & Drop Task Organization
- 🛡 Protected Routes
- 🚀 Docker Support for easy deployment
Kanban/
│── Develop/
│ ├── client/ # React Frontend
│ ├── server/ # Express Backend
│ │ ├── config/ # Database & environment configurations
│ │ ├── controllers/ # API controllers
│ │ ├── middleware/ # Authentication middleware
│ │ ├── models/ # Sequelize models
│ │ ├── routes/ # API routes
│ │ ├── graphql/ # GraphQL resolvers & schemas
│ │ ├── index.ts # Express app entry point
│── .env # Environment variables
│── README.md # Project documentation
│── package.json # Dependencies & scripts
│── docker-compose.yml # Docker configuration
git clone https://github.com/yourusername/kanban-app.git
cd kanban-app# Backend
cd Develop/server
npm install
# Frontend
cd ../client
npm installCreate a .env file in the server/ folder and add:
DB_NAME=kanban_db
DB_USER=your_username
DB_PASSWORD=your_password
DB_HOST=localhost
DB_PORT=5432
JWT_SECRET=your_secret_key
Ensure PostgreSQL is running, then create the database:
# If not already created
npx sequelize-cli db:create
npx sequelize-cli db:migratecd Develop/server
npm run dev # Starts backend with Nodemoncd Develop/client
npm startThe app should be available at http://localhost:3000 🚀.
| Method | Endpoint | Description |
|---|---|---|
| POST | /auth/login |
User login & JWT token |
| POST | /auth/signup |
Register a new user |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/tasks |
Fetch all tasks |
| POST | /api/tasks |
Create a new task |
| PUT | /api/tasks/:id |
Update a task |
| DELETE | /api/tasks/:id |
Delete a task |
Pull requests are welcome! Open an issue for discussions or suggestions.
- Fork the repo
- Clone your forked copy
- Create a new branch (
git checkout -b feature-branch) - Commit your changes (
git commit -m "Added a new feature") - Push to your forked repo (
git push origin feature-branch) - Open a Pull Request 🚀
This project is licensed under the MIT License.
Special thanks to the open-source community and contributors!
🚀 Happy Coding!