Before installing any dependencies or cloning the repository, confirm that every tool listed on this page is available on your machine. BodegaX is a full-stack application composed of three separate runtime environments — a Node.js-based Angular 17 frontend, a Java-based Spring Boot 3.x backend, and a PostgreSQL 14+ database — each of which must be satisfied independently. Missing or mismatched versions are the most common cause of startup failures during local development.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Edwin950821/BodegaX/llms.txt
Use this file to discover all available pages before exploring further.
BodegaX was originally designed and optimized for Windows environments. All tooling, path conventions, and
.vscode/tasks.json scripts were written on Windows. The application runs without modification on macOS and Linux, but terminal commands (especially for Java and Maven) may differ slightly depending on your shell.Requirements at a Glance
| Category | Tool / Library | Required Version | Notes |
|---|---|---|---|
| Runtime | Node.js | 18 LTS or later | npm is bundled; no separate install needed |
| Package Manager | npm | Included with Node.js | Used for all frontend dependency management |
| CLI | Angular CLI | 17.x or later | Installed globally via npm install -g @angular/cli |
| Language | TypeScript | ~5.2.2 | Installed as a dev dependency; do not install globally |
| Framework | Angular Core | ^17.0.0 | Installed via npm install |
| UI Library | Angular Material + CDK | ^17.3.8 | Provides the deep-purple/amber theme and all UI components |
| Async Library | RxJS | ~7.8.0 | Used throughout services and HTTP calls |
| PDF Generation | jsPDF | ^2.5.2 | Powers invoice and report export |
| PDF Tables | jspdf-autotable | ^3.8.4 | Required companion plugin to jsPDF |
| Runtime | Java JDK | 17 or later | OpenJDK 17 recommended; required for Spring Boot |
| Build Tool | Maven or Gradle | Maven 3.8+ / Gradle 8+ | Maven is most common for Spring Boot 3.x projects |
| Framework | Spring Boot | 3.x | Embedded Tomcat; no external server needed |
| App Server | Tomcat | Embedded in Spring Boot | No separate Tomcat installation required |
| Database | PostgreSQL | 14 or later | PostgreSQL 15/16 also supported |
| DB Client | pgAdmin or DBeaver | Any current version | Recommended for schema inspection and seeding |
| Browser | Chrome, Firefox, Edge, Safari | Latest stable | Required for running the Angular app |
| Screen Resolution | Minimum display size | 1366 × 768 | Lower resolutions may clip the sidebar layout |
Frontend Requirements
The Angular frontend uses the@angular-devkit/build-angular:application builder (not the legacy browser builder), which requires a modern version of Node.js and a globally available Angular CLI.
Node.js 18 LTS
Download from nodejs.org. The LTS release ships with npm and
npx included. Verify your installation with node --version and npm --version.Angular CLI 17
Install once globally:
npm install -g @angular/cli. Confirm with ng version. The CLI must be 17.x or later to process the @angular-devkit/build-angular:application builder used in angular.json.TypeScript ~5.2.2
TypeScript is listed as a dev dependency in
package.json and is installed automatically by npm install. Do not install TypeScript globally, as a version mismatch between the global install and the local install will cause ng build to fail.Angular Material ^17.3.8
BodegaX uses the
deeppurple-amber prebuilt theme, loaded in angular.json under styles. Both @angular/material and @angular/cdk at version ^17.3.8 are required and installed together via npm install.Key Frontend Dependencies
The following packages are declared inpackage.json and are installed automatically when you run npm install. You do not need to install them separately.
Runtime dependencies (package.json → dependencies)
Runtime dependencies (package.json → dependencies)
| Package | Version | Purpose |
|---|---|---|
@angular/core | ^17.0.0 | Core Angular framework |
@angular/common | ^17.0.0 | CommonModule, HTTP client utilities |
@angular/forms | ^17.0.0 | Template-driven and reactive forms |
@angular/router | ^17.0.0 | Client-side routing between modules |
@angular/animations | ^17.0.0 | Angular Material animation support |
@angular/material | ^17.3.8 | Material Design component library |
@angular/cdk | ^17.3.8 | Component Dev Kit — required by Material |
@angular/platform-browser | ^17.0.0 | DOM rendering engine |
@angular/platform-browser-dynamic | ^17.0.0 | JIT compilation at bootstrap |
rxjs | ~7.8.0 | Reactive extensions for async data streams |
jspdf | ^2.5.2 | Client-side PDF generation |
jspdf-autotable | ^3.8.4 | Table rendering plugin for jsPDF |
zone.js | ~0.14.2 | Angular change detection |
tslib | ^2.3.0 | TypeScript runtime helpers |
Dev dependencies (package.json → devDependencies)
Dev dependencies (package.json → devDependencies)
| Package | Version | Purpose |
|---|---|---|
@angular/cli | ^17.0.0 | CLI toolchain (ng serve, ng build) |
@angular-devkit/build-angular | ^17.0.0 | Webpack/esbuild builder |
@angular/compiler-cli | ^17.0.0 | AOT template compiler |
typescript | ~5.2.2 | TypeScript compiler |
karma | ~6.4.0 | Test runner |
karma-chrome-launcher | ~3.2.0 | Headless Chrome for unit tests |
jasmine-core | ~5.1.0 | Test assertion framework |
@types/jasmine | ~5.1.0 | TypeScript types for Jasmine |
@types/node | ^22.7.4 | Node.js type definitions |
Backend Requirements
The Spring Boot backend is housed in a separate repository. You will need a working Java 17 environment and either Maven or Gradle to compile and run it.Java 17 JDK
Install OpenJDK 17 from adoptium.net or your OS package manager. Set
JAVA_HOME to point to the JDK root. Verify with java -version — output must show 17.x.Maven 3.8+
Download from maven.apache.org. Add the
bin/ directory to your PATH. Verify with mvn --version. Maven is used to run mvn spring-boot:run and package the JAR for deployment.Spring Boot 3.x
Spring Boot 3.x is declared in the backend’s
pom.xml and is downloaded by Maven automatically. It includes an embedded Tomcat server — no standalone Tomcat installation is needed.Embedded Tomcat
Spring Boot 3.x bundles Tomcat internally. The backend starts on port 8080 by default. All Angular HTTP calls in the source code target
http://localhost:8080.Database Requirements
PostgreSQL 14+
Install from postgresql.org. The default port is 5432. Create a dedicated database for BodegaX and note the database name, username, and password for use in
application.properties.Database Client (Recommended)
pgAdmin 4 or DBeaver makes it easy to verify the schema after Hibernate auto-creates it, seed initial data, and run diagnostic queries during development. Neither is strictly required.
Browser Requirements
BodegaX’s Angular 17 frontend compiles toES2022 (as set in tsconfig.json under target and module). Any modern evergreen browser supports this target natively.
Supported Browsers
- Google Chrome (latest stable)
- Mozilla Firefox (latest stable)
- Microsoft Edge (latest stable)
- Apple Safari (latest stable)
Display Requirements
Minimum resolution: 1366 × 768 px. The sidebar layout and data tables are not designed for resolutions below this threshold. The interface is responsive for tablets and desktops.
Optional Cloud Tooling
These tools are only required if you plan to deploy BodegaX to a cloud provider rather than running it locally.- Google Cloud Platform
- Amazon Web Services
GCP Account
A Google Cloud account with billing enabled. The recommended deployment uses Cloud Run (backend), Cloud SQL for PostgreSQL (database), and Firebase Hosting or Cloud Storage (frontend).
Google Cloud CLI
Install the
gcloud CLI from cloud.google.com/sdk. Required for pushing Docker images to Artifact Registry and deploying to Cloud Run.Docker
Required to build the Spring Boot container image for Cloud Run or GKE. Install Docker Desktop from docker.com.
Firebase CLI
Install with
npm install -g firebase-tools. Required only if deploying the Angular frontend to Firebase Hosting (firebase deploy).