Hey there! Welcome to AssetFlow, a centralized ERP platform built to simplify how organizations track, allocate, and maintain their physical assets and shared resources.
This project is split into a robust Node.js backend (with Prisma, Postgres, Mongo, and Redis) and a fast React + Vite frontend.
- Backend: Node.js, Express, Prisma, Postgres, MongoDB (for logs), Redis (for caching & pub/sub)
- Frontend: React, Vite, Tailwind CSS (v4), Recharts (for analytics), React Router
- Infra: Docker & Docker Compose
Follow these simple steps to get everything up and running on your local machine.
We use Docker to make database setup painless. You don't need to install Postgres or Mongo manually!
- Make sure you have Docker Desktop installed and running.
- Open your terminal in the root folder of this project.
- Run the following command:
(This will start Postgres, MongoDB, and Redis in the background).
docker-compose up -d
Now let's get the Node server running.
- Open a terminal and navigate to the
serverfolder:cd server - Install the dependencies:
npm install
- Copy the
.env.examplefile to.env(if you haven't already). The default Docker URLs are already set! - Sync the database schema using Prisma:
npx prisma db push
- Seed the database with some initial dummy data (Optional but recommended):
npm run seed
- Start the server:
(The backend should now be running on
npm run dev
http://localhost:5000)
Finally, let's start the React app.
- Open a new terminal and navigate to the
clientfolder:cd client - Install the dependencies:
npm install
- Start the Vite development server:
(The frontend should now be running on
npm run dev
http://localhost:5173)
- Redis Port Error: If Docker complains that port
6379is already in use, it means you have a local Redis running. Either stop your local Redis, or change the port mapping indocker-compose.ymlto"6380:6379"and update your.envaccordingly. - Prisma Error: If you get a Prisma client error, make sure your Postgres container is fully running before you execute
npx prisma db push.
Enjoy building and managing assets with AssetFlow! 🎉