{"id":25130635,"url":"https://github.com/muhammedmagdyy/taskora-api","last_synced_at":"2025-04-23T18:22:11.930Z","repository":{"id":179580058,"uuid":"663118431","full_name":"MuhammedMagdyy/Taskora-API","owner":"MuhammedMagdyy","description":"Taskora - A REST 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.","archived":false,"fork":false,"pushed_at":"2025-03-26T19:12:01.000Z","size":470,"stargazers_count":11,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T02:21:27.209Z","etag":null,"topics":["azure","docker","expressjs","mysql","nginx","nodejs","prisma","redis","typescript"],"latest_commit_sha":null,"homepage":"https://taskora.live","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MuhammedMagdyy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-06T15:34:26.000Z","updated_at":"2025-03-27T09:21:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"4cba90f1-bbe3-46f5-bc78-02394ebd48c1","html_url":"https://github.com/MuhammedMagdyy/Taskora-API","commit_stats":null,"previous_names":["muhammedmagdyy/todo","muhammedmagdyy/taskora-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MuhammedMagdyy%2FTaskora-API","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MuhammedMagdyy%2FTaskora-API/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MuhammedMagdyy%2FTaskora-API/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MuhammedMagdyy%2FTaskora-API/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MuhammedMagdyy","download_url":"https://codeload.github.com/MuhammedMagdyy/Taskora-API/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250487803,"owners_count":21438664,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azure","docker","expressjs","mysql","nginx","nodejs","prisma","redis","typescript"],"created_at":"2025-02-08T13:17:52.129Z","updated_at":"2025-04-23T18:22:11.911Z","avatar_url":"https://github.com/MuhammedMagdyy.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Taskora 🚀\n\n![NodeJS](https://img.shields.io/badge/Node.js-6DA55F?logo=node.js\u0026logoColor=white)\n![Express.js](https://img.shields.io/badge/Express.js-%23404d59.svg?logo=express\u0026logoColor=%2361DAFB)\n![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?logo=typescript\u0026logoColor=fff)\n![Docker](https://img.shields.io/badge/Docker-2496ED?logo=docker\u0026logoColor=fff)\n![MySQL](https://img.shields.io/badge/MySQL-4479A1?logo=mysql\u0026logoColor=fff)\n![Prisma](https://img.shields.io/badge/Prisma-2D3748?logo=prisma\u0026logoColor=white)\n![Redis](https://img.shields.io/badge/Redis-%23DD0031.svg?logo=redis\u0026logoColor=white)\n![Nginx](https://img.shields.io/badge/Nginx-009639.svg?logo=nginx\u0026logoColor=white)\n![Postman](https://img.shields.io/badge/Postman-FF6C37?logo=postman\u0026logoColor=white)\n![Microsoft Azure](https://custom-icon-badges.demolab.com/badge/Microsoft%20Azure-0089D6?logo=msazure\u0026logoColor=white)\n\nTaskora API built using **Node.js**, **Express.js**, **TypeScript**, **Prisma ORM**, and **Redis**. It allows users to **create**, **read**, **update**, and **delete** projects \u0026 tasks while following RESTful API design principles.\n\n🌐 **[Frontend Repository](https://github.com/amatter23/Taskora)** | 🚀 **[Live Demo](https://Taskora.live)**\n\n---\n\n**[Alert ⚠️]** I have created a [Node.js script](https://github.com/MuhammedMagdyy/taskora-user-tracker) to monitor new user registrations passionately and celebrate every new member of the Taskora community.\n\n---\n\n## 📚 Table of Contents\n\n- [🌟 Features](#-features)\n- [📖 API Documentation](#-api-documentation)\n  - [🚀 Postman](#-postman)\n  - [📚 Swagger](#-swagger)\n- [🗄️ Database Schema](#️-database-schema)\n- [🛠️ Getting Started](#️-getting-started)\n  - [⚡ Prerequisites](#-prerequisites)\n  - [📦 Installing](#-installing)\n- [🤝 Contributing](#-contributing)\n\n---\n\n## 🌟Features\n\n- 🔒 **Authentication \u0026 Authorization** (JWT \u0026 OAuth2 with Google \u0026 GitHub).\n- ✅ **CRUD Operations** for Projects, Tasks, and Tags.\n- 📅 **Task Management** with Tags \u0026 Status.\n- 📊 **User Profile** Handling.\n- 🔄 **Token Refresh** \u0026 Password Reset via Email.\n- 📥 **Redis Caching** for Improved Performance.\n- 📧 **Email Notifications** for Verification \u0026 Password Reset.\n- 🌐 **Deployed on Azure** with **Nginx** as Reverse Proxy.\n- 🔄️ **CI/CD** using GitHub Actions.\n- 🌙 **Ramadan Challenge** A special feature for Ramadan, allowing users to set daily goals and track their progress.\n- 🥳 **Eid Competition** A fun competition feature for Eid, where users can participate in challenges and win prizes.\n- 📝 **[Todo](https://github.com/MuhammedMagdyy/Taskora-API/blob/main/TODO.md)** – 🚀 Explore finished \u0026 upcoming features, enhancements, and what's next for Taskora!\n\n---\n\n## 📖 API Documentation\n\n### 🚀 Postman\n\nEasily test and interact with the API documentation using Postman\n\n[![Run in Postman](https://run.pstmn.io/button.svg)](https://documenter.getpostman.com/view/10107969/2sAYdZuZDa)\n\n---\n\n### 📚 Swagger\n\n[Swagger](https://swagger.io/) UI is available at `/api-docs` to explore the API endpoints\n\n```\nServer URL could be:\n  - http://localhost:3000/api-docs (development)\n  - https://backend.taskora.live/api-docs (staging)\n  - https://api.taskora.live/api-docs (production)\n```\n\n---\n\n## 🗄️ Database Schema\n\n![Schema](https://github.com/user-attachments/assets/d48b49fb-5066-4f64-a655-635a4019539b)\n\n---\n\n## 🛠️ Getting Started\n\nThese instructions will get you a copy of the project up and running on your local machine for development and testing.\n\n### ⚡ Prerequisites\n\n- 🟢 [Node.js](https://nodejs.org/en)\n- 🐬 [MySQL](https://www.mysql.com/downloads/) using 🐳 [Docker](https://www.docker.com/) from [Docker Hub](https://hub.docker.com/_/mysql)\n- 🌐 A web browser like [Google Chrome](https://www.google.com/intl/ar_eg/chrome/)\n- 💻 A text editor (_recommended_: [Visual Studio Code](https://code.visualstudio.com/download))\n- 🧪 API Testing Tool — [Postman](https://www.postman.com/downloads/)\n- 🐘 Database Engine — [DBeaver](https://dbeaver.io/download/)\n\n---\n\n## 📦 Installing\n\n1. **Clone the repository** 🔗:\n\n   ```bash\n   git clone https://github.com/MuhammedMagdyy/Taskora-API.git\n   ```\n\n2. **Navigate to the project directory** 📁:\n\n   ```bash\n   cd Taskora-API\n   ```\n\n3. **Install required packages** 📦:\n\n   ```bash\n   npm install\n   ```\n\n4. **Configure Environment Variables** 🛡️:\n\n   - Rename `.env.example` ➔ `.env`\n   - Add your environment variables based on [`.env.example`](https://github.com/MuhammedMagdyy/Taskora-API/blob/main/.env.example)\n\n5. **Run Database Migrations** 🗄️:\n\n   ```bash\n   npm run db:migrate\n   npm run db:generate\n   npm run db:push\n   ```\n\n6. **Start the Application** ⚡:\n   - **Production** 🏆: `npm start`\n   - **Development** 🧑‍💻: `npm run dev`\n\n---\n\n## 🤝 Contributing\n\n💡 **Found a bug?** Have an idea for a new feature? Contributions are welcome!\n\n1. **Fork the repository** 🚀\n2. **Create a new branch** `git checkout -b feature/awesome-feature` 🌟\n3. **Commit your changes** `git commit -m 'Add some awesome feature'` 🔥\n4. **Push to your branch** `git push origin feature/awesome-feature` 🚀\n5. **Create a Pull Request** 🎉\n\n---\n\n🚀 **Happy Coding!**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuhammedmagdyy%2Ftaskora-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmuhammedmagdyy%2Ftaskora-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuhammedmagdyy%2Ftaskora-api/lists"}