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.
[
Due to the low traffic and high costs, I decided to discontinue hosting and the domain. 💔
Taskora serves
+450active users! 🎉
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. 🥳
- 🔒 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!
Easily test and interact with the API documentation using Postman
Swagger UI is available at /api-docs to explore the API endpoints and their details.
These instructions will get you a copy of the project up and running on your local machine for development and testing.
Before you begin, ensure you have met the following requirements:
- 🐳 Docker and Docker Compose
- 🌐 Web browser like Google Chrome
- 💻 Text editor (recommended: Visual Studio Code)
- 🧪 API Testing Tool — Postman
- 🐘 Database Engine — DBeaver
-
🔗 Clone the repository :
git clone https://github.com/MuhammedMagdyy/Taskora-API.git
-
📁 Navigate to the project directory :
cd Taskora-API -
🛡️ Configure Environment Variables :
# Update the `.env` file with your environment variables. cp .env.example .env -
🚀 Build and start the Docker containers :
docker compose up -d --build
-
🖥️ 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
💡 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!