# 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 ```bash git clone cd panel ``` 2. Install dependencies ```bash npm install ``` 3. Start the development server ```bash npm run dev ``` 4. Open [http://localhost:3000](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.