- About
- Features
- Prerequisites
- Installation
- Development
- Production Build
- Project Structure
- Technologies
- Configuration
- Troubleshooting
- Team
Jacette is a modern desktop application for managing your cooking recipes. It provides an intuitive interface to create, organize, search, and browse your favorite recipes.
The application follows an MVC (Model-View-Controller) architecture with the DAO pattern for data access and a Service layer for business logic.
| Feature | Description |
|---|---|
| Recipe CRUD | Create, read, update, and delete recipes |
| Advanced Search | Search by name or by ingredient |
| Category Filtering | Starter, Main Course, Dessert, Drink, etc. |
| Dynamic Sorting | Sort by name or by category |
| Ingredient Management | Add ingredients with quantities and units |
| Difficulty Levels | Easy, Medium, Hard |
| Modern UI | Responsive design with FontAwesome icons |
| Tool | Minimum Version | Check |
|---|---|---|
| Java JDK | 24+ | java -version |
| Maven | 3.9+ | mvn -version |
| Docker | 24+ | docker --version |
| Docker Compose | 2+ | docker compose version |
Note: The project includes a Maven Wrapper (
mvnw), so a local Maven installation is not strictly required.
git clone https://github.com/PerretWilliam/Jacette.git
cd Jacette# Start the PostgreSQL container in the background
docker compose up -d
# Verify the container is running
docker psWait a few seconds for PostgreSQL to be ready. The
bdd.sqlscript runs automatically on first launch and initializes the tables with demo data.
./mvnw clean javafx:runmvn clean javafx:run# Compile only
./mvnw clean compile
# Run the application
./mvnw javafx:runThe application launches with a 1200×800 window displaying the recipe list.
./mvnw clean packageThe JAR will be generated at target/jacette-1.0-SNAPSHOT.jar.
./mvnw clean javafx:jlinkThe image will be created in target/app/ and includes a minimal JRE, the application, all dependencies, and a native launcher.
# macOS / Linux
./target/app/bin/app
# Windows
target\app\bin\app.batThe application can be distributed as a ZIP archive that runs on any machine without requiring Java to be installed:
ls target/app.zipjacette/
├── pom.xml # Maven configuration
├── compose.yml # Docker configuration (PostgreSQL)
├── mvnw / mvnw.cmd # Maven Wrapper
├── check-database.sh # Database diagnostic script
│
├── database-config/
│ └── bdd.sql # SQL initialization script
│
└── src/main/
├── java/org/jaliam/jacette/
│ ├── JacetteApplication.java # Entry point
│ ├── Launcher.java # JPMS launcher
│ ├── controller/ # MVC controllers
│ ├── dao/ # Data access objects
│ ├── model/ # Business entities
│ ├── service/ # Business logic
│ ├── util/ # Utilities
│ └── view/ # JavaFX views
│
└── resources/org/jaliam/jacette/
├── application-properties/ # Configuration
├── css/ # Stylesheets
└── uml/ # PlantUML diagrams
| Technology | Version | Purpose |
|---|---|---|
| Java | 24 | Main language |
| JavaFX | 21.0.6 | Graphical interface |
| PostgreSQL | 16+ | Database |
| JDBC | 42.7.8 | PostgreSQL connector |
| Library | Version | Purpose |
|---|---|---|
| ControlsFX | 11.2.1 | Advanced UI components |
| Ikonli | 12.3.1 | FontAwesome icons |
| BootstrapFX | 0.4.0 | Bootstrap-like styles |
| FormsFX | 11.6.0 | Form handling |
| ValidatorFX | 0.6.1 | Input validation |
Diagrams are available in src/main/resources/org/jaliam/jacette/uml/:
mld.puml— Logical Data Modelmpd.puml— Physical Data Modeldiagramme-classes.puml— Full class diagram
Configuration file: src/main/resources/org/jaliam/jacette/application-properties/config.txt
db.url=jdbc:postgresql://localhost:5432/jacette
db.username=jacette
db.password=your_passwordTo customize PostgreSQL, edit compose.yml:
environment:
POSTGRES_USER: jacette
POSTGRES_PASSWORD: your_password# Check logs
docker compose logs db
# Restart the container
docker compose restart db# Check that the container is running
docker ps
# Test the connection
docker exec local_pgdb psql -U jacette -d jacette -c "SELECT 1;"docker compose down -v
docker compose up -d# Check Java version (must be 24+)
java -version
# Clean and recompile
./mvnw clean compile|
PERRET William Email • Portfolio |
BENJABIR Jawad Email • Portfolio |