https://github.com/muhammedmagdyy/taskora-api
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.
https://github.com/muhammedmagdyy/taskora-api
azure docker expressjs mysql nginx nodejs prisma redis typescript
Last synced: 8 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/muhammedmagdyy/taskora-api
- Owner: MuhammedMagdyy
- License: mit
- Created: 2023-07-06T15:34:26.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-03-26T19:12:01.000Z (9 months ago)
- Last Synced: 2025-03-30T02:21:27.209Z (9 months ago)
- Topics: azure, docker, expressjs, mysql, nginx, nodejs, prisma, redis, typescript
- Language: TypeScript
- Homepage: https://taskora.live
- Size: 459 KB
- Stars: 11
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Taskora π










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](https://github.com/amatter23/Taskora)** | π **[Live Demo](https://Taskora.live)**
---
**[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.
---
## π Table of Contents
- [π Features](#-features)
- [π API Documentation](#-api-documentation)
- [π Postman](#-postman)
- [π Swagger](#-swagger)
- [ποΈ Database Schema](#οΈ-database-schema)
- [π οΈ Getting Started](#οΈ-getting-started)
- [β‘ Prerequisites](#-prerequisites)
- [π¦ Installing](#-installing)
- [π€ Contributing](#-contributing)
---
## π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.
- π **Deployed on Azure** 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](https://github.com/MuhammedMagdyy/Taskora-API/blob/main/TODO.md)** β π Explore finished & upcoming features, enhancements, and what's next for Taskora!
---
## π API Documentation
### π Postman
Easily test and interact with the API documentation using Postman
[](https://documenter.getpostman.com/view/10107969/2sAYdZuZDa)
---
### π Swagger
[Swagger](https://swagger.io/) UI is available at `/api-docs` to explore the API endpoints
```
Server URL could be:
- http://localhost:3000/api-docs (development)
- https://backend.taskora.live/api-docs (staging)
- https://api.taskora.live/api-docs (production)
```
---
## ποΈ Database 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
- π’ [Node.js](https://nodejs.org/en)
- π¬ [MySQL](https://www.mysql.com/downloads/) using π³ [Docker](https://www.docker.com/) from [Docker Hub](https://hub.docker.com/_/mysql)
- π A web browser like [Google Chrome](https://www.google.com/intl/ar_eg/chrome/)
- π» A text editor (_recommended_: [Visual Studio Code](https://code.visualstudio.com/download))
- π§ͺ API Testing Tool β [Postman](https://www.postman.com/downloads/)
- π Database Engine β [DBeaver](https://dbeaver.io/download/)
---
## π¦ Installing
1. **Clone the repository** π:
```bash
git clone https://github.com/MuhammedMagdyy/Taskora-API.git
```
2. **Navigate to the project directory** π:
```bash
cd Taskora-API
```
3. **Install required packages** π¦:
```bash
npm install
```
4. **Configure Environment Variables** π‘οΈ:
- Rename `.env.example` β `.env`
- Add your environment variables based on [`.env.example`](https://github.com/MuhammedMagdyy/Taskora-API/blob/main/.env.example)
5. **Run Database Migrations** ποΈ:
```bash
npm run db:migrate
npm run db:generate
npm run db:push
```
6. **Start the Application** β‘:
- **Production** π: `npm start`
- **Development** π§βπ»: `npm run dev`
---
## π€ Contributing
π‘ **Found a bug?** Have an idea for a new feature? Contributions are welcome!
1. **Fork the repository** π
2. **Create a new branch** `git checkout -b feature/awesome-feature` π
3. **Commit your changes** `git commit -m 'Add some awesome feature'` π₯
4. **Push to your branch** `git push origin feature/awesome-feature` π
5. **Create a Pull Request** π
---
π **Happy Coding!**