Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Projex

License Node.js TypeScript Fastify PostgreSQL


📖 Overview

Projex is an internal project management dashboard that allows administrators to manage and track their projects efficiently.

It provides a clean dashboard where admins can create, update, delete, and monitor projects. The application also provides useful project statistics such as total projects, completed projects, and other important metrics.


✨ Features

  • 🔐 Secure Authentication
  • 📁 Project Management
  • 📊 Dashboard & Analytics
  • 📎 File Uploads
  • 📱 Responsive Design
  • ⚡ High Performance

🛠 Tech Stack

  • Node.js
  • TypeScript
  • Fastify
  • Prisma ORM
  • PostgreSQL
  • Supabase Storage

📚 Documentation

Complete documentation is available in the docs directory.

Document Description
Configuration Environment variables and application configuration
Folder Structure Project folders and files organization
scripts get script details more guides

🚀 Getting Started

Prerequisites

Before installing, make sure you have:

  • Node.js 20+
  • npm or pnpm
  • Git
  • PostgreSQL database

Clone Repository

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

Navigate to Project

cd projex

Install Dependencies

npm install

⚙️ Configure Environment Variables

Create your environment file:

touch .env

Or manually create a .env file in the project root.

Add your environment variables:

PORT=3000

MODE=DEVELOPMENT

DATABASE_URL=your_postgresql_connection_string

JWT_SECRET=your_secret_key

SUPABASE_URL=your_supabase_project_url
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
SUPABASE_BUCKET_NAME=your_storage_bucket_name

For more details, see the Configuration Guide.


🗄 Setup Prisma

Note: The application can start without Prisma setup, but authentication requires database records. You must complete Prisma setup to create the required database tables and default credentials.

1. Generate Prisma Client

Generate Prisma Client from the database schema:

npm run prisma:generate

2. Run Database Migration

Create database tables:

npm run prisma:migrate

This will apply Prisma migrations and prepare your database.


3. Seed Database

Create initial database records:

npm run seed

The seed script creates predefined data required by the application, such as default login credentials.


4. Open Prisma Studio (Optional)

View and manage database records:

npm run prisma:studio

💻 Run Development Server

Start the application in development mode:

npm run dev

The server will start with automatic reload enabled.

After completing all setup steps, open your browser and navigate to:

http://localhost:3000 or with your custom port

Log in using the default member credentials created during the Prisma seed process.

To find the seeded login credentials open:

prisma/member.ts

and use the predefined email and password values provided in the seed file.


🏗 Build Application

Create a production build:

npm run build

🚀 Run Production Server

After building:

npm start

This runs the compiled application from the dist directory.


📄 License

This project is licensed under the ISC License.


👨‍💻 Author

Abdullahi Shair


⭐ Support

If you find this project useful, consider giving it a ⭐ star on GitHub.

Your support helps others discover the project and encourages future development.

About

Internal project management dashboard built with Fastify, TypeScript, Prisma, and PostgreSQL. Manage projects, members, authentication, file uploads, and analytics with a modular architecture

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages