Backend server for the Eazmenu restaurant ordering system.
CRITICAL: This server uses the @sbaka/shared package which is published to GitHub Packages.
Local Development:
"@sbaka/shared": "file:../shared"- Uses the local shared package from
../sharedfolder - Ensures you're testing with latest local changes
- Run
npm installafter any changes to shared package
Production/Deployment:
"@sbaka/shared": "1.1.6"- Downloads from GitHub Packages registry
- Before deploying, update package.json to use version number
- After deployment, revert back to
file:../sharedfor development
- DO NOT add
drizzle-ormas a direct dependency in this package'spackage.json - The server uses
drizzle-ormthrough the@sbaka/sharedpackage dependency - This ensures both packages use the exact same version of drizzle-orm, preventing TypeScript type conflicts
- When deployed, the server installs
@sbaka/sharedfrom GitHub Packages (not local reference)
TypeScript will throw type incompatibility errors if:
- Server has its own
drizzle-orminstallation - Shared package has a different
drizzle-orminstallation - Even with the same version number, separate node_modules instances cause type conflicts
- The
@sbaka/sharedpackage is published to GitHub Packages - In production: Server downloads the published package from GitHub
- In development: TypeScript paths may reference local shared package source
- Never reference files outside the server package in runtime code
- Only development-time TypeScript paths can reference outside (for local development)
npm install
npm run devnpm run db:generate # Generate migrations
npm run db:migrate # Run migrations
npm run db:push # Push schema to database
npm run db:seed # Seed database with sample datanpm run build
npm startSee .env.example for required environment variables.