An open API service indexing awesome lists of open source software.

https://github.com/thomas465xd/uptask_backend

UpTask Project Backend made using MongoDB, Express and Node
https://github.com/thomas465xd/uptask_backend

api endpoint-engineering express mongodb mongoose mvc mvc-architecture node postman rest-api routing ts typescript

Last synced: 9 months ago
JSON representation

UpTask Project Backend made using MongoDB, Express and Node

Awesome Lists containing this project

README

          

# Uptask Backend ๐Ÿ“ฒ

A robust RESTful API built with **Node.js**, **Express**, **TypeScript**, and **MongoDB** for managing projects and tasks in a to-do list application. This backend supports CRUD operations for projects and tasks, along with user authentication and two-factor authentication using JWT.

โš ๏ธ **Note:** This project is under active development and subject to changes as features are refined and added.

---

## Features ๐Ÿšจ

- **CRUD Operations**:
- Create, retrieve, update, and delete projects.
- Add, retrieve, update, and delete tasks within a project.

- **User Authentication**:
- Secure user registration and login.
- Two-Factor Authentication (2FA) implemented using **JSON Web Tokens (JWT)**.

- **TypeScript-Powered**:
- Strongly typed codebase for maintainability and scalability.

---

## Installation โฌ‡๏ธ

1. Clone this repository:
```bash
git clone https://github.com/yourusername/uptask-backend.git
cd uptask-backend
```
2. Install Dependencies:
```bash
npm install
```
3. Set up environment variables:
Create a .env file in the root directory with the following:
```env
Coming later...
```
4. Start the development server:
```bash
npm run dev
```
---

# API Endpoints

## Projects

- `POST /api/projects` โ€“ Create a new project.
- `GET /api/projects` โ€“ Get all projects.
- `GET /api/projects/:id` โ€“ Get a specific project by ID.
- `PUT /api/projects/:id` โ€“ Update a project by ID.
- `DELETE /api/projects/:id` โ€“ Delete a project by ID.

## Tasks โœ…

- POST /api/projects/:projectId/tasks โ€“ Add a new task to a project.
- GET /api/projects/:projectId/tasks โ€“ Get all tasks in a project.
- PUT /api/projects/:projectId/tasks/:taskId โ€“ Update a task in a project.
- DELETE /api/projects/:projectId/tasks/:taskId โ€“ Delete a task from a project.

## Authentication ๐Ÿ‘ฎ
- POST /api/auth/register โ€“ Register a new user.
- POST /api/auth/login โ€“ User login with JWT-based authentication.
- POST /api/auth/2fa โ€“ Verify two-factor authentication token.

---

## Technologies ๐Ÿš€

- Node.js โ€“ Server-side JavaScript runtime.
- Express.js โ€“ Web framework for building RESTful APIs.
- TypeScript โ€“ Type-safe JavaScript.
- MongoDB โ€“ NoSQL database for managing data.
- JWT โ€“ Secure authentication and two-factor authorization.

---

## Roadmap ๐Ÿ—บ๏ธ

## Current Features:
- CRUD for projects and tasks.
- Basic user authentication and JWT-based 2FA.

## Planned Enhancements:
- Advanced error handling.
- Role-based access control (RBAC).
- Unit and integration tests with Jest.
- API documentation using Swagger or Postman.

---

## License ๐Ÿชช
This project is licensed under the MIT License. See the [LICENSE](./LICENSE) file for details.

---

**Made with โ™ฅ๏ธ Thomas Schrรถdinger**