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.
- Overview
- Features
- Tech Stack
- Prerequisites
- Installation Guide
- Database Setup
- Environment Variables
- Running the Application
- Project Architecture
- Testing the API
- Troubleshooting
- License
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.
- 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
| Layer | Technology |
|---|---|
| Backend | NestJS |
| Database | MariaDB |
| ORM / DB Layer | TypeORM (or equivalent) |
| Language | TypeScript |
| Package Manager | npm |
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 |
Follow these steps carefully:
git clone https://github.com/yourusername/taskforge.git
cd taskforge
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):
PORT=3000
DB_HOST=localhost DB_PORT=3306 DB_USER=root DB_PASSWORD=your_password DB_NAME=taskforge_db
🏃 Running the Application
Once everything is set up, you can start the API:
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:
curl http://localhost:3000/projects
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