Skip to content

Latest commit

ย 

History

89 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ ProjectForge

A production-oriented project management and team collaboration backend built with Node.js, Express.js, and PostgreSQL.

ProjectForge is a long-term backend engineering project focused on building the backend of a modern project management and team collaboration platform.

The goal is not simply to create CRUD APIs. ProjectForge is being designed and implemented with real-world backend engineering principles including authentication, authorization, role-based access control, relational database design, secure workflows, database constraints, pagination, filtering, search, modular architecture, and production-oriented development practices.


๐Ÿ“Œ Current Status

ProjectForge is actively under development.

Completed

  • โœ… Authentication
  • โœ… JWT-based authorization
  • โœ… HTTP-only cookie authentication
  • โœ… Workspace management
  • โœ… Workspace membership
  • โœ… Role-based workspace authorization
  • โœ… Project management
  • โœ… Task management
  • โœ… Task assignment
  • โœ… Task search
  • โœ… Task filtering
  • โœ… Task sorting
  • โœ… Task pagination
  • โœ… Workspace dashboard
  • โœ… Complete workspace invitation lifecycle
  • โœ… Task comment creation

Currently in Development

  • ๐Ÿšง Task comment listing
  • ๐Ÿšง Task comment updating
  • ๐Ÿšง Task comment deletion
  • ๐Ÿšง Activity logging
  • ๐Ÿšง File attachments

Planned

  • โณ Real-time collaboration
  • โณ Notifications
  • โณ Advanced project management
  • โณ AI-powered backend features
  • โณ Production hardening
  • โณ Deployment and scaling

๐ŸŽฏ Project Vision

ProjectForge is being built as a complete collaboration platform where users can organize their work inside isolated workspaces.

The long-term architecture looks conceptually like this:

Workspace
โ”‚
โ”œโ”€โ”€ Members
โ”œโ”€โ”€ Invitations
โ”‚
โ”œโ”€โ”€ Projects
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ Tasks
โ”‚   โ”‚   โ”œโ”€โ”€ Comments
โ”‚   โ”‚   โ””โ”€โ”€ Attachments
โ”‚   โ”‚
โ”‚   โ””โ”€โ”€ Activity
โ”‚
โ”œโ”€โ”€ Dashboard
โ”œโ”€โ”€ Notifications
โ””โ”€โ”€ Real-time Collaboration

The system is intentionally being developed incrementally.

Every feature follows:

Design
   โ†“
Understand important concepts
   โ†“
Database / Model
   โ†“
Service
   โ†“
Controller
   โ†“
Route
   โ†“
Testing
   โ†“
Production Review
   โ†“
Commit & Push

๐Ÿ—๏ธ Architecture

ProjectForge follows a layered backend architecture.

Client
  โ”‚
  โ–ผ
Routes
  โ”‚
  โ–ผ
Controllers
  โ”‚
  โ–ผ
Services
  โ”‚
  โ–ผ
Models
  โ”‚
  โ–ผ
PostgreSQL

Routes

Define API endpoints and connect requests to middleware/controllers. Routes remain lightweight and contain no business logic.

Controllers

Handle HTTP concerns: parameters, request bodies, authenticated user data, service calls, and responses.

Services

Contain business logic such as workspace membership checks, role checks, invitation workflows, authorization rules, and coordination between models.

Models

Contain SQL queries and database operations. Models do not contain application-level authorization logic.


๐Ÿ› ๏ธ Tech Stack

Backend

  • Node.js
  • Express.js
  • JavaScript
  • CommonJS modules

Database

  • PostgreSQL

Authentication & Security

  • JWT
  • HTTP-only cookies
  • bcrypt
  • SHA-256
  • Node.js crypto

API Testing

  • Postman

Database Management

  • PostgreSQL
  • pgAdmin

Version Control

  • Git
  • GitHub

๐Ÿ“‚ Project Structure

backend/
โ”‚
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ config/
โ”‚   โ”‚   โ””โ”€โ”€ db.js
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ controllers/
โ”‚   โ”‚   โ”œโ”€โ”€ authController.js
โ”‚   โ”‚   โ”œโ”€โ”€ workspaceController.js
โ”‚   โ”‚   โ”œโ”€โ”€ projectController.js
โ”‚   โ”‚   โ”œโ”€โ”€ taskController.js
โ”‚   โ”‚   โ”œโ”€โ”€ dashboardController.js
โ”‚   โ”‚   โ””โ”€โ”€ workspaceInvitationController.js
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ models/
โ”‚   โ”‚   โ”œโ”€โ”€ user.model.js
โ”‚   โ”‚   โ”œโ”€โ”€ workspace.model.js
โ”‚   โ”‚   โ”œโ”€โ”€ workspaceMember.model.js
โ”‚   โ”‚   โ”œโ”€โ”€ project.model.js
โ”‚   โ”‚   โ”œโ”€โ”€ task.model.js
โ”‚   โ”‚   โ”œโ”€โ”€ dashboard.model.js
โ”‚   โ”‚   โ””โ”€โ”€ workspaceInvitation.model.js
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ services/
โ”‚   โ”‚   โ”œโ”€โ”€ auth.service.js
โ”‚   โ”‚   โ”œโ”€โ”€ workspace.service.js
โ”‚   โ”‚   โ”œโ”€โ”€ project.service.js
โ”‚   โ”‚   โ”œโ”€โ”€ task.service.js
โ”‚   โ”‚   โ”œโ”€โ”€ dashboard.service.js
โ”‚   โ”‚   โ””โ”€โ”€ workspaceInvitation.service.js
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ middleware/
โ”‚   โ”‚   โ””โ”€โ”€ ...
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ routes/
โ”‚   โ”‚   โ””โ”€โ”€ ...
โ”‚   โ”‚
โ”‚   โ””โ”€โ”€ app.js
โ”‚
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ .gitignore
โ””โ”€โ”€ README.md

The structure will continue evolving as ProjectForge grows.


๐Ÿ” Authentication

ProjectForge uses JWT-based authentication with secure password handling.

Registration

User submits credentials
        โ”‚
        โ–ผ
Input validation
        โ”‚
        โ–ผ
Normalize email
        โ”‚
        โ–ผ
Check duplicate email
        โ”‚
        โ–ผ
Hash password using bcrypt
        โ”‚
        โ–ผ
Create user
        โ”‚
        โ–ผ
Return user information

Passwords are never stored as plaintext.

Login

Credentials
    โ”‚
    โ–ผ
Find user
    โ”‚
    โ–ผ
Verify password
    โ”‚
    โ–ผ
Generate JWT
    โ”‚
    โ–ผ
Store authentication token
in HTTP-only cookie
    โ”‚
    โ–ผ
Authenticated requests

๐Ÿข Workspace System

A workspace is the primary organizational boundary in ProjectForge.

Workspace
โ”‚
โ”œโ”€โ”€ Members
โ”œโ”€โ”€ Projects
โ”œโ”€โ”€ Tasks
โ”œโ”€โ”€ Invitations
โ””โ”€โ”€ Dashboard

Users can belong to multiple workspaces. Workspace membership is represented separately from users so that roles and access can be managed per workspace.


๐Ÿ‘ฅ Workspace Membership & Authorization

Workspace-level authorization is handled through the workspace membership system.

Authenticated User
        โ”‚
        โ–ผ
Workspace Membership
        โ”‚
        โ–ผ
Role
        โ”‚
        โ–ผ
Permission

The application does not trust role information supplied by the client. Actual membership and role information is retrieved from PostgreSQL.

Sensitive workspace operations currently use the OWNER role.


๐Ÿ“ Projects

Projects belong to workspaces.

Workspace
    โ”‚
    โ””โ”€โ”€ Projects

Projects provide higher-level organization for tasks and remain workspace-scoped.


โœ… Task Management

Tasks belong to projects.

Workspace
    โ”‚
    โ–ผ
Project
    โ”‚
    โ–ผ
Task

Tasks currently support:

  • Title
  • Description
  • Status
  • Priority
  • Due date
  • Assignee
  • Creation information

Tasks can be created, retrieved, updated, and deleted.


๐Ÿ‘ค Task Assignment

Tasks can be assigned to users.

Task retrieval can include:

  • Assignee ID
  • Assignee name
  • Assignee email

๐Ÿ”Ž Task Search, Filtering, Sorting & Pagination

ProjectForge supports task discovery through:

  • Search by title
  • Filtering by status
  • Filtering by priority
  • Sorting by supported fields
  • Pagination

Pagination uses:

LIMIT
OFFSET

The API returns:

tasks
totalTasks

This allows clients to construct pagination interfaces.


๐Ÿ“Š Workspace Dashboard

The workspace dashboard provides an overview of projects and tasks.

It includes statistics such as:

  • Total projects
  • Total tasks
  • Completed tasks
  • In-progress tasks
  • Todo tasks
  • High-priority tasks
  • Overdue tasks
  • Completion percentage

It can also provide recent projects and tasks.

Dashboard access is workspace-scoped.


โœ‰๏ธ Workspace Invitation System

ProjectForge contains a complete workspace invitation lifecycle.

                  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                  โ”‚ PENDING  โ”‚
                  โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚
          โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
          โ”‚            โ”‚            โ”‚
          โ–ผ            โ–ผ            โ–ผ
      ACCEPTED      REJECTED      REVOKED

Supported operations:

  • Create invitation
  • Accept invitation
  • List invitations
  • Reject invitation
  • Revoke invitation

๐Ÿ”’ Secure Invitation Tokens

Invitation tokens are generated using cryptographically secure random bytes.

Random Token
     โ”‚
     โ–ผ
SHA-256
     โ”‚
     โ–ผ
Token Hash
     โ”‚
     โ–ผ
PostgreSQL

The raw token is used by the invited user, while only its SHA-256 hash is persisted in the database.


โณ Invitation Expiration

Invitations contain an expiration timestamp.

The current implementation uses a seven-day expiration period.

Before processing an invitation:

Current Time < expires_at

must be true.

Expired invitations cannot be processed.


๐Ÿšซ Duplicate Pending Invitations

ProjectForge prevents multiple pending invitations for the same email address inside the same workspace.

Application logic and database constraints work together to enforce this rule.

Historical invitations remain after their status changes.

Example:

Workspace
โ”‚
โ”œโ”€โ”€ john@example.com โ†’ ACCEPTED
โ”œโ”€โ”€ john@example.com โ†’ REJECTED
โ”œโ”€โ”€ john@example.com โ†’ REVOKED
โ””โ”€โ”€ john@example.com โ†’ PENDING

Two simultaneous PENDING invitations for the same workspace/email are not allowed.


๐Ÿ“ฉ Create Invitation

POST /api/v1/workspaces/:workspaceId/invitations

Flow:

Request
  โ”‚
  โ–ผ
Validate workspace
  โ”‚
  โ–ผ
Verify requester is OWNER
  โ”‚
  โ–ผ
Normalize email
  โ”‚
  โ–ผ
Check existing membership
  โ”‚
  โ–ผ
Check pending invitation
  โ”‚
  โ–ผ
Generate secure token
  โ”‚
  โ–ผ
Hash token
  โ”‚
  โ–ผ
Set expiration
  โ”‚
  โ–ผ
Create invitation
  โ”‚
  โ–ผ
Return invitation

โœ… Accept Invitation

POST /api/v1/invitations/:token/accept

Flow:

Token
  โ”‚
  โ–ผ
SHA-256 hash
  โ”‚
  โ–ผ
Find invitation
  โ”‚
  โ–ผ
Verify invitation exists
  โ”‚
  โ–ผ
Verify PENDING status
  โ”‚
  โ–ผ
Verify expiration
  โ”‚
  โ–ผ
Verify authenticated email
  โ”‚
  โ–ผ
Create workspace membership
  โ”‚
  โ–ผ
Mark invitation ACCEPTED

The authenticated user's email must match the invitation email.


๐Ÿ“‹ List Invitations

GET /api/v1/workspaces/:workspaceId/invitations

The endpoint verifies that the requester belongs to the workspace before returning invitations.

Invitation data can include:

  • Invitation ID
  • Email
  • Role
  • Status
  • Expiration
  • Inviter
  • Creation timestamp

โŒ Reject Invitation

POST /api/v1/invitations/:token/reject

Flow:

Token
  โ”‚
  โ–ผ
SHA-256 hash
  โ”‚
  โ–ผ
Find invitation
  โ”‚
  โ–ผ
Verify PENDING
  โ”‚
  โ–ผ
Verify expiration
  โ”‚
  โ–ผ
Verify invited email
  โ”‚
  โ–ผ
Status โ†’ REJECTED

Rejecting an invitation does not create workspace membership.


๐Ÿšซ Revoke Invitation

PATCH /api/v1/invitations/:invitationId/revoke

Revocation is an owner-side operation.

Invitation ID
      โ”‚
      โ–ผ
Find invitation
      โ”‚
      โ–ผ
Get workspace ID
      โ”‚
      โ–ผ
Verify requester is OWNER
      โ”‚
      โ–ผ
Verify invitation is PENDING
      โ”‚
      โ–ผ
Status โ†’ REVOKED

A revoked invitation cannot be accepted.


๐Ÿ’ฌ Phase 7 โ€” Collaboration

Phase 7 introduces collaboration features.

The first collaboration feature is Task Comments.

The intended collaboration architecture is:

Task
โ”‚
โ”œโ”€โ”€ Comments
โ”œโ”€โ”€ Attachments
โ””โ”€โ”€ Activity History

๐Ÿ’ฌ Task Comments

A comment belongs to a task and a user.

User
  โ”‚
  โ–ผ
Comment
  โ”‚
  โ–ผ
Task
  โ”‚
  โ–ผ
Project
  โ”‚
  โ–ผ
Workspace

Database Schema

The task_comments table contains:

task_comments
โ”‚
โ”œโ”€โ”€ id
โ”œโ”€โ”€ task_id
โ”œโ”€โ”€ user_id
โ”œโ”€โ”€ content
โ”œโ”€โ”€ created_at
โ””โ”€โ”€ updated_at

Task Relationship

task_comments.task_id
        โ”‚
        โ–ผ
tasks.id

Deleting a task cascades to its comments.

User Relationship

task_comments.user_id
        โ”‚
        โ–ผ
users.id

The current relationship prevents deleting a referenced user while comments still depend on that user.

Content Constraint

The database rejects empty or whitespace-only content:

CHECK (length(trim(content)) > 0)

Index

An index exists on:

task_comments.task_id

to optimize retrieval of comments for a task.


โž• Create Comment

POST /api/v1/tasks/:taskId/comments

Example request body:

{
  "content": "I'll finish this task by tomorrow."
}

The user ID comes from the authenticated user and is never trusted from the request body.

Flow:

POST /tasks/:taskId/comments
              โ”‚
              โ–ผ
        Get authenticated user
              โ”‚
              โ–ผ
           Get task
              โ”‚
              โ–ผ
        Does task exist?
              โ”‚
              โ–ผ
      Get task's workspace
              โ”‚
              โ–ผ
   Check workspace membership
              โ”‚
        โ”Œโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”
        โ”‚           โ”‚
       NO          YES
        โ”‚           โ”‚
      Reject        โ–ผ
              Create comment
                    โ”‚
                    โ–ผ
             Return comment

Any authenticated member of the workspace can comment. Commenting is not restricted to the workspace owner.


๐Ÿ—ƒ๏ธ Database Design Philosophy

PostgreSQL is treated as an important part of the application's integrity layer.

Foreign Keys

Relationships are enforced at the database level.

Examples:

Task โ†’ Project
Project โ†’ Workspace
Comment โ†’ Task
Comment โ†’ User
Invitation โ†’ Workspace
Invitation โ†’ User

Parameterized Queries

Queries use parameters:

WHERE id = $1

rather than directly interpolating user-controlled values.

Constraints

The database uses:

  • Primary keys
  • Foreign keys
  • NOT NULL constraints
  • CHECK constraints
  • Unique constraints/indexes

Indexing

Indexes are added for frequently queried relationships and constraints, such as:

task_comments.task_id

๐Ÿ” Security Principles

Security is considered throughout development.

Password Security

Passwords are hashed with bcrypt and are never stored in plaintext.

Authentication

JWT-based authentication identifies authenticated users.

HTTP-only cookies are used where applicable.

Authorization

Authentication determines identity.

Authorization determines whether the authenticated user can perform an operation.

Workspace Isolation

Workspace-scoped resources are protected by membership checks.

Role-Based Access Control

Sensitive operations require appropriate workspace roles, such as OWNER.

Secure Tokens

Invitation tokens use cryptographically secure random generation and only their SHA-256 hashes are persisted.


๐Ÿงช Testing Strategy

Postman is currently used for API testing.

Every feature is tested after implementation.

Testing covers:

Happy Paths

Successful creation, retrieval, update, acceptance, rejection, etc.

Failure & Edge Cases

  • Invalid authentication
  • Unauthorized users
  • Non-members
  • Missing resources
  • Duplicate invitations
  • Expired invitations
  • Already processed invitations
  • Invalid invitation tokens
  • Invalid workspace access
  • Invalid comment content

A feature is not committed until it has been tested and reviewed.


๐Ÿ”„ Development Workflow

Every feature follows:

1. Design
       โ†“
2. Understand important new concepts
       โ†“
3. Database / Model
       โ†“
4. Service
       โ†“
5. Controller
       โ†“
6. Route
       โ†“
7. Test
       โ†“
8. Production Review
       โ†“
9. Commit & Push

The project intentionally avoids blindly copying implementation code.

The purpose is to understand why each architectural and database decision is made.


๐ŸŒฟ Git Workflow

ProjectForge uses meaningful feature-level commits.

Examples:

feat: implement workspace invitation creation system
feat: implement workspace invitation acceptance flow
feat: implement workspace invitation listing
feat: implement workspace invitation rejection flow
feat: implement workspace invitation revocation flow
feat: implement task comment creation

This keeps the Git history understandable and makes individual features easy to identify.


๐Ÿ—บ๏ธ Development Roadmap

Phase 1
Foundation
   โ”‚
   โ–ผ
Phase 2
Core Backend
   โ”‚
   โ–ผ
Phase 3
Authentication & Authorization
   โ”‚
   โ–ผ
Phase 4
Workspaces, Projects, Tasks & Dashboard
   โ”‚
   โ–ผ
Phase 6
Workspace Invitation System
   โ”‚
   โ–ผ
Phase 7
Collaboration
   โ”‚
   โ”œโ”€โ”€ Task Comments
   โ”œโ”€โ”€ Activity Logs
   โ””โ”€โ”€ File Attachments
   โ”‚
   โ–ผ
Future Phases
   โ”‚
   โ”œโ”€โ”€ Real-time Collaboration
   โ”œโ”€โ”€ Notifications
   โ”œโ”€โ”€ Advanced Project Management
   โ”œโ”€โ”€ AI Backend
   โ””โ”€โ”€ Production Hardening

๐Ÿ“ˆ Current Feature Matrix

Feature Status
User Registration โœ… Complete
User Login โœ… Complete
JWT Authentication โœ… Complete
HTTP-only Authentication Cookies โœ… Complete
Workspace Management โœ… Complete
Workspace Membership โœ… Complete
Workspace Roles โœ… Complete
Project Management โœ… Complete
Task Management โœ… Complete
Task Assignment โœ… Complete
Task Search โœ… Complete
Task Filtering โœ… Complete
Task Sorting โœ… Complete
Task Pagination โœ… Complete
Workspace Dashboard โœ… Complete
Create Invitation โœ… Complete
Accept Invitation โœ… Complete
List Invitations โœ… Complete
Reject Invitation โœ… Complete
Revoke Invitation โœ… Complete
Create Task Comment โœ… Complete
List Task Comments ๐Ÿšง In Progress
Update Task Comment ๐Ÿšง In Progress
Delete Task Comment ๐Ÿšง In Progress
Activity Logs ๐Ÿšง In Progress
File Attachments ๐Ÿšง In Progress
Real-time Collaboration โณ Planned
Notifications โณ Planned
AI Features โณ Planned
Production Hardening โณ Planned

โš™๏ธ Getting Started

Prerequisites

Install:

  • Node.js
  • npm
  • PostgreSQL
  • Git

Clone

git clone https://github.com/rohanbuildai/ProjectForge.git
cd ProjectForge

Install Dependencies

npm install

๐Ÿ”‘ Environment Variables

Create a .env file according to the application's configuration.

Example:

PORT=5000

DB_HOST=localhost
DB_PORT=5432
DB_NAME=projectforge_db
DB_USER=postgres
DB_PASSWORD=your_password

JWT_SECRET=your_jwt_secret

Use strong secrets in real environments.

Never commit .env files or credentials to Git.


โ–ถ๏ธ Running the Application

Start the development server using the configured development command:

npm run dev

The API will be available at:

http://localhost:5000

๐Ÿ“ก API Versioning

ProjectForge uses versioned API routes.

Example:

/api/v1/...

This provides a foundation for future API evolution without immediately breaking existing clients.


๐Ÿงฑ Production-Oriented Engineering

ProjectForge is intentionally built with production considerations from the beginning.

Key principles:

Separation of Concerns

Routes, controllers, services, and models have distinct responsibilities.

Database Integrity

Foreign keys and constraints protect relationships and important invariants.

Secure Authentication

Passwords are hashed and authentication credentials are protected.

Server-Side Authorization

Workspace membership and roles are verified on the server.

Input Validation

Invalid input is rejected before reaching sensitive application logic.

Parameterized SQL

User-controlled values are passed as SQL parameters.

Pagination

Large collections are not returned blindly in one response.

Search and Filtering

Task retrieval supports structured filtering and search.

Meaningful Git History

Each meaningful feature receives its own commit.


๐Ÿšง Future Engineering Improvements

As ProjectForge grows, additional production improvements are planned, including:

  • Centralized error handling refinements
  • More comprehensive validation
  • Automated tests
  • API documentation
  • Rate limiting
  • Structured logging
  • Monitoring
  • Caching
  • Background jobs
  • Object storage
  • WebSocket infrastructure
  • Deployment automation
  • Horizontal scaling

These will be introduced when they become relevant to the architecture rather than being added prematurely.


๐Ÿ”ฎ Future Vision

The long-term goal is to evolve ProjectForge into a complete project-management and collaboration platform.

                    ProjectForge
                         โ”‚
              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
              โ”‚                     โ”‚
          Workspaces             Users
              โ”‚
       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
       โ”‚      โ”‚         โ”‚
   Projects Members Invitations
       โ”‚
     Tasks
       โ”‚
 โ”Œโ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
 โ”‚     โ”‚          โ”‚
Comments Files   Activity
 โ”‚
 โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                 โ”‚
          Collaboration
                 โ”‚
       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
       โ”‚         โ”‚         โ”‚
    Realtime Notifications AI

The final system is intended to combine strong backend engineering with intelligent features.


๐Ÿค– Future AI Integration

AI integration is planned for a later phase.

The AI layer will eventually integrate with the existing backend rather than being an isolated demonstration.

Potential areas include:

  • Project intelligence
  • Task assistance
  • Productivity insights
  • Intelligent summaries
  • Natural-language project interaction
  • Automated project analysis

The exact AI feature set will be designed when the AI phase begins.


๐Ÿค Contributing

ProjectForge is currently primarily developed as a long-term personal engineering project.

As the project matures, contribution guidelines, issue templates, and development documentation may be added.

Suggestions, discussions, and contributions are welcome as the project moves toward a more public development stage.


๐Ÿ‘จโ€๐Ÿ’ป Author

Rohan Kumar Singh

Computer Science & Engineering โ€” AI & ML

GitHub:

https://github.com/rohanbuildai


โญ Project Philosophy

ProjectForge is built around one core principle:

Build like a real product, not like a tutorial.

The objective is to understand the engineering decisions behind every feature.

Every feature should be:

Designed
   โ†“
Understood
   โ†“
Implemented
   โ†“
Tested
   โ†“
Reviewed
   โ†“
Production-ready
   โ†“
Committed

ProjectForge is a long-term exploration of:

  • Backend Engineering
  • REST API Design
  • PostgreSQL
  • Database Architecture
  • Authentication
  • Authorization
  • Security
  • Role-Based Access Control
  • System Design
  • Collaboration Systems
  • Real-Time Systems
  • AI Integration

ProjectForge is not being built to maximize the number of endpoints.

It is being built to develop the engineering ability required to design, build, debug, test, and maintain a real software system.


๐Ÿ“œ License

License information will be added as ProjectForge approaches its public release.


Built with โค๏ธ, JavaScript, Node.js, Express.js & PostgreSQL.

ProjectForge โ€” Build. Collaborate. Ship.

About

A production-oriented project management and team collaboration platform built with Node.js, Express.js, and PostgreSQL.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages