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
- Host: GitHub
- URL: https://github.com/thomas465xd/uptask_backend
- Owner: Thomas465xd
- License: mit
- Created: 2024-11-17T16:09:29.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-21T19:03:31.000Z (11 months ago)
- Last Synced: 2025-01-31T19:13:38.363Z (11 months ago)
- Topics: api, endpoint-engineering, express, mongodb, mongoose, mvc, mvc-architecture, node, postman, rest-api, routing, ts, typescript
- Language: TypeScript
- Homepage:
- Size: 188 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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**