Skip to content

Taskora - A RESTful API for modern task and project management that helps you organize work efficiently. Create projects, manage tasks, set deadlines, and track progress with an intuitive interface.

License

Notifications You must be signed in to change notification settings

MuhammedMagdyy/Taskora-API

Repository files navigation

Taskora πŸš€

NodeJS Express.js TypeScript Docker MySQL Prisma Redis BullMQ Nginx Postman Swagger Microsoft Azure

Taskora API built using Node.js, Express.js, TypeScript, Prisma ORM, and Redis. It allows users to create, read, update, and delete projects & tasks while following RESTful API design principles.

🌐 Frontend Repository | πŸš€ Live Preview


[⚠️ Alert] Taskora now has +400 active users! πŸŽ‰


[⚠️ Alert] I have created a Node.js script to monitor new user registrations passionately and celebrate every new member of the Taskora community by sending me an email notification. πŸ₯³


πŸ“š Table of Contents


🌟Features

  • πŸ”’ Authentication & Authorization (JWT & OAuth2 with Google & GitHub).
  • βœ… CRUD Operations for Projects, Tasks, and Tags.
  • πŸ“… Task Management with Tags & Status.
  • πŸ“Š User Profile Handling.
  • πŸ”„ Token Refresh & Password Reset via Email.
  • πŸ“₯ Redis Caching for Improved Performance.
  • πŸ“§ Email Notifications for Verification & Password Reset.
  • πŸ•’ Background Jobs using BullMQ for sending emails asynchronously.
  • 🌐 [Previously] Deployed on Azure, [Currently] running on a VPS with Nginx as Reverse Proxy.
  • πŸ”„οΈ CI/CD using GitHub Actions.
  • πŸŒ™ Ramadan Challenge A special feature for Ramadan, allowing users to set daily goals and track their progress.
  • πŸ₯³ Eid Competition A fun competition feature for Eid, where users can participate in challenges and win prizes.
  • πŸ“ Todo – πŸš€ Explore finished & upcoming features, enhancements, and what's next for Taskora!

πŸ“– API Documentation

πŸš€ Postman

Easily test and interact with the API documentation using Postman

Run in Postman


πŸ“š Swagger

Swagger UI is available at /api-docs to explore the API endpoints and their details.


πŸ—„οΈ Database Schema

Schema


πŸ› οΈ Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing.

⚑ Prerequisites

Before you begin, ensure you have met the following requirements:


πŸ“¦ Installing

🐳 Docker

  1. πŸ”— Clone the repository :

    git clone https://github.com/MuhammedMagdyy/Taskora-API.git
  2. πŸ“ Navigate to the project directory :

    cd Taskora-API
  3. πŸ›‘οΈ Configure Environment Variables :

    # Update the `.env` file with your environment variables.
    cp .env.example .env
  4. πŸš€ Build and start the Docker containers :

    docker compose up -d --build
  5. πŸ–₯️ Useful commands :

    # Start containers
    docker compose up -d
    
    # Follow logs
    docker compose logs -f app
    
    # Stop, and remove containers
    docker compose down
    
    # Stop, remove containers, and volumes
    docker compose down -v

🀝 Contributing

πŸ’‘ Found a bug? Have an idea for a new feature? Contributions are welcome!

Please read the CONTRIBUTING.md file for details on how to contribute to this project.


πŸš€ Happy Coding!

About

Taskora - A RESTful API for modern task and project management that helps you organize work efficiently. Create projects, manage tasks, set deadlines, and track progress with an intuitive interface.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •