Ferreandina NoSQL is a university project developed at UCALDAS by Eduardo and Santiago. It is a complete hardware store management system that handles branches, products, categories, suppliers, supplies, customers, and workers — all backed by a MongoDB document database. The system is built as a two-tier application: a RESTful Java/Javalin API on the backend and a React single-page application on the frontend, communicating over HTTP with full CORS support.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/tutosrive/ferreandina-nosql/llms.txt
Use this file to discover all available pages before exploring further.
What It Does
Inventory Management
Track products and categories across all store locations. Filter products by category, monitor low-stock items per branch, and remove out-of-stock entries with a single API call.
Branch Management
Manage hardware store branches with full CRUD operations. Each branch maintains its own product inventory, and the API exposes dedicated endpoints for per-branch stock queries and cleanup.
Supplier & Supply Tracking
Maintain a registry of suppliers and the supplies they deliver. A dedicated defective-report endpoint surfaces supplies flagged as defective using MongoDB aggregation pipelines.
Customer & Worker Records
Store and manage customer and employee records with full create, read, update, and delete support. The React frontend provides dedicated list, create, update, and detail views for each resource type.
Tech Stack
Backend
| Technology | Version |
|---|---|
| Java | 21 |
| Javalin | 7.2.2 |
| MongoDB Driver (sync) | 5.7.0 (BOM) |
| Jackson Databind | 2.21.2 |
| org.json | 20260522 |
| dotenv-java | 3.2.0 |
| Build Tool | Gradle (Kotlin DSL) |
Frontend
| Technology | Version |
|---|---|
| React | 18 |
| TypeScript | ~5.8 |
| Vite | 6 |
| Tailwind CSS | 4 |
| PrimeReact | 10 |
| Axios | 1.9 |
| React Router DOM | 6 |
Key Features
- Full CRUD for all 7 resource types: branches, categories, products, suppliers, supplies, customers, and workers
- Advanced MongoDB aggregation queries — low-stock detection, per-branch product listings, and defective-supply reports
- Generic controller / service pattern on the backend for consistent, DRY resource handling
- CORS enabled by default via Javalin’s bundled plugin (
anyHost()rule set inApp.java) - React SPA with React Router — lazy-loaded pages for list, create, update, and detail views per resource
- Bruno request collection (
Ferreandina-Bruno-Requests.zip) included in the repository root for quick API testing
Project Structure
The repository is organized into two top-level application directories:app/bc directory contains the Gradle multi-project build. The main application entry point is app/bc/app/src/main/java/com/ferreandina/App.java. The app/fr directory is a standard Vite project managed with pnpm.
Ferreandina NoSQL is an academic project created at UCALDAS and is released as open-source software under the GNU Affero General Public License v3.0 (AGPL-3.0). You are free to study, modify, and distribute it under the terms of that license.