Files
panel/README.md

3.8 KiB

Project Management Panel

A comprehensive project management system built with Next.js for managing construction/engineering projects, contracts, and tasks.

Features

📋 Project Management

  • Create and manage projects with detailed information
  • Link projects to contracts
  • Track project deadlines and progress
  • Add custom notes and contact information

📄 Contract Management

  • Create and manage contracts
  • Track contract details including customer and investor information
  • Link multiple projects to contracts
  • Monitor contract deadlines

Task Management

  • Create task templates for reusable workflows
  • Add tasks to projects (both template-based and custom)
  • Track task status and priorities
  • Monitor task deadlines and completion

📊 Dashboard

  • Overview of project statistics
  • Recent projects display
  • Task completion tracking
  • Quick access to pending items

Tech Stack

  • Framework: Next.js 15.1.8
  • Database: SQLite with better-sqlite3
  • Styling: Tailwind CSS
  • Date Handling: date-fns
  • Frontend: React 19

Getting Started

Prerequisites

  • Node.js (version 16 or higher)
  • npm or yarn

Installation

  1. Clone the repository
git clone <repository-url>
cd panel
  1. Install dependencies
npm install
  1. Start the development server
npm run dev
  1. Open http://localhost:3000 in your browser

Database Setup

The application uses SQLite database which will be automatically initialized on first run. The database file is located at data/database.sqlite.

Project Structure

src/
├── app/                    # Next.js app router pages
│   ├── api/               # API routes
│   │   ├── contracts/     # Contract management endpoints
│   │   ├── projects/      # Project management endpoints
│   │   ├── project-tasks/ # Task management endpoints
│   │   └── tasks/         # Task template endpoints
│   ├── contracts/         # Contract pages
│   ├── projects/          # Project pages
│   └── tasks/             # Task management pages
├── components/            # Reusable React components
│   ├── ui/               # UI components (Button, Card, etc.)
│   └── forms/            # Form components
└── lib/                  # Utility functions
    ├── queries/          # Database query functions
    └── db.js            # Database connection

Available Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run start - Start production server
  • npm run lint - Run ESLint

Database Schema

The application uses the following main tables:

  • contracts - Contract information
  • projects - Project details linked to contracts
  • tasks - Task templates
  • project_tasks - Tasks assigned to specific projects
  • notes - Project notes and updates

API Endpoints

Projects

  • GET /api/projects - Get all projects
  • POST /api/projects - Create new project
  • GET /api/projects/[id] - Get project by ID
  • PUT /api/projects/[id] - Update project
  • DELETE /api/projects/[id] - Delete project

Contracts

  • GET /api/contracts - Get all contracts
  • POST /api/contracts - Create new contract

Tasks

  • GET /api/project-tasks - Get project tasks or task templates
  • POST /api/project-tasks - Create new project task
  • PATCH /api/project-tasks/[id] - Update task status
  • DELETE /api/project-tasks/[id] - Delete task

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is private and proprietary.