Skip to content

AlexandreLabarbarie/Task-Manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

🧱 TaskForge

TaskForge is a web-based project management API built with NestJS and MariaDB.
It allows users to create projects, assign tasks to specific users, and manage progress efficiently.


📋 Table of Contents

  1. Overview
  2. Features
  3. Tech Stack
  4. Prerequisites
  5. Installation Guide
  6. Database Setup
  7. Environment Variables
  8. Running the Application
  9. Project Architecture
  10. Testing the API
  11. Troubleshooting
  12. License

🧩 Overview

TaskForge is a backend REST API built with NestJS that connects to a MariaDB database.
It provides a complete system for managing projects and tasks, supporting user assignment and efficient collaboration.


🚀 Features

  • User registration and authentication
  • Project creation and management
  • Task assignment per user
  • CRUD operations for users, projects, and tasks
  • RESTful API endpoints
  • Database versioning and initialization with database.sql

🛠️ Tech Stack

Layer Technology
Backend NestJS
Database MariaDB
ORM / DB Layer TypeORM (or equivalent)
Language TypeScript
Package Manager npm

🧰 Prerequisites

Before installing and running TaskForge, make sure your system has the following:

Tool Installation Guide
Git Download Git
Node.js (v18+) & npm Download Node.js
NestJS CLI npm install -g @nestjs/cli
MariaDB Download MariaDB
Postman (optional, for testing) Download Postman

⚙️ Installation Guide

Follow these steps carefully:

1. Clone the repository

git clone https://github.com/yourusername/taskforge.git

2. Navigate into the project directory

cd taskforge

3. Install dependencies

npm install

🗃️ Database Setup

Make sure MariaDB is installed and running.

Log into your MariaDB terminal:

mysql -u root -p

Create a new database (you can choose any name, e.g. taskforge_db):

CREATE DATABASE taskforge_db;

Import your provided SQL file:

mysql -u root -p taskforge_db < database.sql

Verify that the tables have been created successfully.

🔐 Environment Variables

A .env file must exist at the project root. Here’s an example configuration (.env.example):

Application

PORT=3000

Database

DB_HOST=localhost DB_PORT=3306 DB_USER=root DB_PASSWORD=your_password DB_NAME=taskforge_db

⚠️ Don’t forget to update the values with your own database credentials.

🏃 Running the Application

Once everything is set up, you can start the API:

Run in development mode

npm run start:dev

The API should now be accessible at: 👉 http://localhost:3000

🧱 Project Architecture taskforge/ │ ├── database.sql # SQL script to create and populate the database ├── .env # Environment configuration file ├── package.json # Project dependencies and scripts ├── tsconfig.json # TypeScript configuration ├── src/ │ ├── main.ts # Application entry point │ ├── app.module.ts # Root application module │ ├── modules/ # Feature modules (e.g., users, projects, tasks) │ ├── controllers/ # REST API controllers │ ├── services/ # Business logic and services │ ├── entities/ # Database entities / TypeORM models │ ├── dto/ # Data transfer objects (validation schemas) │ └── utils/ # Helper functions and middleware └── README.md

This modular architecture keeps the project clean, scalable, and easy to maintain.

🔍 Testing the API

After launching the server, you can test endpoints using Postman or curl.

Example:

Get all projects

curl http://localhost:3000/projects

Create a new user

curl -X POST http://localhost:3000/users -H "Content-Type: application/json" -d '{"name":"John Doe","email":"john@example.com"}'

You can also import the Postman collection if one is provided in /docs.

🧰 Troubleshooting Issue Possible Solution ECONNREFUSED Make sure MariaDB is running and credentials in .env are correct. Error: Cannot find module '@nestjs/core' Run npm install again. Port already in use Change the port in .env or stop the conflicting process. Database not found Ensure you created and imported taskforge_db properly. 📜 License

This project is licensed under the MIT License. You are free to use, modify, and distribute it for educational or commercial purposes.

👨‍💻 Author

TaskForge Team Built with ❤️ using NestJs and MariaDB

About

Application de Task Manager, développée avec NestJS, Next.js et MariaDB.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors