Welcome to Box Tracker, the ultimate solution for organizing and tracking all your stuff in boxes, across multiple locations, and even with multiple users! This repo is structured as a monorepo managed by Nx
, with separate folders for the backend (NestJS
) and the frontend (NextJS
).
- Frontend:
Next.js
(React) with TypeScript - Backend:
NestJS
(Node.js) with TypeScript - Database:
PostgreSQL
with Prisma ORM - Monorepo Management:
Nx
- Infrastructure:
Docker
for database containerizationtmux
for development environment management
- Documentation: Markdown files in
/docs
and Storybook
repo/
├─ projects/
│ ├─ backend/ # NestJS backend service
│ ├─ webapp/ # Next.js frontend service
│ └─ storybook/ # Storybook documentation
├─ libs/
│ ├─ assets/ # Shared assets
│ ├─ components/ # Shared UI components
│ ├─ helpers/ # Shared helper functions
│ ├─ mocks/ # Shared mock data
│ ├─ theme/ # SCSS design system
│ ├─ types/ # Shared TypeScript types
│ └─ scripts/ # Build scripts and generators
├─ docs/ # Project documentation
├─ .env.example # Environment variables (example)
├─ docker-compose.yml # Docker setup for the database
├─ devkit.sh # Development environment script
├─ nx.json # Nx workspace configuration
└─ package.json # Shared scripts for Nx tasks
Complete project documentation, including architectural diagrams, technical decisions, and development setup guides.
The Next.js
frontend application with TypeScript. Contains the user interface for the Box Tracker application.
The NestJS
backend that handles authentication, API endpoints, and database interactions using Prisma ORM.
Shared libraries and components that are used across projects, including UI components, design systems, and TypeScript types.
-
Clone the Repo
git clone https://github.com/spacenectar/box-tracker.git cd box-tracker
-
Ensure you have the following installed:
- Node.js (v22+) and Yarn
- Docker (for database only)
- tmux (optional, for DevKit)
-
Copy
.env.example
to.env
and update the values as needed.
Box Tracker provides several ways to run the development environment:
-
Standard Development
# Start both frontend and backend yarn dev
Note: This will start both the frontend and backend services, as well as the storybook instance and Prisma Studio, however it will not start the database.
# Start the database docker-compose up postgres
-
DevKit Environment (recommended)
# Start the tmux-based development environment yarn devkit
-
Individual Services
# Start just the database docker-compose up postgres # In another terminal, start the backend yarn backend # In another terminal, start the frontend yarn frontend
For more detailed information about running the project, see the documentation:
You can find more detailed information about various parts of the project in our documentation:
- Development Setup Documentation: Guides for working with the monorepo, Docker, and DevKit
docs/architectural-decisions/
: Technical decisions and implementation notesdocs/coding-guidelines/
: Standards and best practices for codedocs/design-guidelines/
: UI/UX standards and design system documentationprojects/webapp/
: Next.js frontend applicationprojects/backend/
: NestJS backend servicelibs/
: Shared libraries and components
If you want to help out, feel free to:
- Fork or clone this repo.
- Make your changes.
- Submit a pull request with a clear description of what you did.
We'll review and merge it if it looks good.
Thanks for checking out Box Tracker! If you have questions, feature requests, or just want to rant about how unorganized your boxes are, open an issue or reach out. Let's build something awesome!