A modern, full-stack application for managing boards with user authentication, repairs tracking, and test results management. Features a React 19 frontend and blazing-fast Hono backend powered by Bun.
Created for my fathers job.
git clone https://github.com/iiivanpopov/beger.git
cd beger
cp .env.example .env # Then config
docker-compose build
docker-compose up -d- π JWT Authentication - Secure user authentication with access/refresh tokens
- π₯ Role-Based Access Control - Admin and user roles with different permissions
- π§ Repairs Management - Track and manage board repairs
- π Test Results - Record and monitor test results
- π Google Sheets Integration - Import data directly from Google Sheets
- π¨ Modern UI - Beautiful and responsive interface with React 19
- β‘ High Performance - Built with Bun for exceptional speed
- π³ Docker Ready - Easy deployment with Docker Compose
- π Internationalization - Multi language
Before you begin, ensure you have the following installed:
Framework: React v19 βοΈ
- Tanstack Router - File-based routing solution
- Ky - Elegant HTTP client with a convenient API
- Tanstack Query - Powerful server state management for data fetching
- React Hook Form - Performant form state management
- Valibot - Lightweight validation library (Zod alternative)
- React Intl - I18n
Framework: Hono v4 π₯
- Drizzle ORM - TypeScript-first ORM for type safety
- Valibot - Request validation
- Bun - Ultra-fast JavaScript runtime with built-in PostgreSQL and Redis drivers
- PostgreSQL - Primary database
- Redis - Caching and session management
- ESLint - Code linting with @antfu/eslint-config
- Stylelint - CSS/Style linting
- @yelaiii/stylelint - My Custom Stylelint configuration
git clone https://github.com/iiivanpopov/beger.git
cd begerCreate a .env file in the root directory:
# Server Configuration
PORT=5333 # Backend port
JWT_ACCESS_SECRET=c9e5fd5df58770fea7063ebad0c78d6c # Generate new secret for production
JWT_REFRESH_SECRET=2d03a2683014ad790487149e73d97bc2 # Generate new secret for production
# Admin Credentials
ADMIN_PASSWORD= # Set a strong admin password
# Database Configuration
DB_USER=postgres # PostgreSQL username
DB_PASSWORD=postgres # PostgreSQL password (change in production!)
# Google Sheets Integration
SHEET_URL="" # Your Google Sheet CSV URL (in quotes)The default JWT secrets shown above are for development only. Generate strong, random secrets using:
openssl rand -hex 32
π Note: The SHEET_URL must be enclosed in double quotes
If you need to use a different backend port, update both files:
.env:
PORT=4111 # Your custom portapps/frontend/nginx.conf:
location /api/ {
proxy_pass http://backend:4111/api/;
# ... rest of configuration
}
docker-compose builddocker-compose upOr run in detached mode:
docker-compose up -dThe application will be available at:
- Frontend: http://localhost (port 80)
- Backend API: http://localhost:5333/api (or your custom port)
When new updates are available:
docker-compose down
git pull
docker-compose build
docker-compose up -dThe application supports importing data from Google Sheets. Here's how to set it up:
Ensure your Google Sheet has the exact column headers as shown:
- Open your sheet in Google Sheets
- Go to File β Share β Publish to web
- In the modal, select CSV (Comma-Separated Values) format (not "Web Page")
- Click Publish and copy the generated URL
Add the CSV URL to your .env file (remember to use quotes):
SHEET_URL="https://docs.google.com/spreadsheets/d/e/YOUR_SHEET_ID/pub?output=csv"beger/
βββ apps/
β βββ backend/
β β βββ src/
β β β βββ app/ # App init layer
β β β βββ modules/ # Feature modules
β β β βββ config/ # Configuration layer
β β β βββ database/ # Database schemas & migrations
β β β βββ middleware/
β β β βββ utils/ # Project shared utils
β β βββ drizzle/ # Database migrations
β βββ frontend/
β βββ src/
β β βββ api/ # API hooks & requests
β β βββ routes/ # Tanstack Router routes
β β βββ pages/ # Page components
β β βββ components/ # Business components
β β βββ providers/ # React context providers
β β βββ styles/ # CSS global styles
β β βββ shared/ # UI-Kit, hooks, utils
βββ assets/
βββ docker-compose.yml
βββ .envInternationalization not included!
- Youtube: https://youtu.be/XJMSeYHSzy0

