Skip to content

PerretWilliam/jacette

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jacette

Java 24 JavaFX PostgreSQL Docker Maven

A recipe management desktop application built with JavaFX and PostgreSQL


Table of Contents


About

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.


Features

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

Prerequisites

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.


Installation

1. Clone the repository

git clone https://github.com/PerretWilliam/Jacette.git
cd Jacette

2. Start the PostgreSQL database

# Start the PostgreSQL container in the background
docker compose up -d

# Verify the container is running
docker ps

Wait a few seconds for PostgreSQL to be ready. The bdd.sql script runs automatically on first launch and initializes the tables with demo data.


Development

Option 1 — Maven Wrapper (recommended)

./mvnw clean javafx:run

Option 2 — Local Maven installation

mvn clean javafx:run

Option 3 — Separate compile and run

# Compile only
./mvnw clean compile

# Run the application
./mvnw javafx:run

The application launches with a 1200×800 window displaying the recipe list.


Production Build

Executable JAR

./mvnw clean package

The JAR will be generated at target/jacette-1.0-SNAPSHOT.jar.

Native image with JLink

./mvnw clean javafx:jlink

The image will be created in target/app/ and includes a minimal JRE, the application, all dependencies, and a native launcher.

Run the native image

# macOS / Linux
./target/app/bin/app

# Windows
target\app\bin\app.bat

Distribution

The application can be distributed as a ZIP archive that runs on any machine without requiring Java to be installed:

ls target/app.zip

Project Structure

jacette/
├── 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

Technologies

Backend & Core

Technology Version Purpose
Java 24 Main language
JavaFX 21.0.6 Graphical interface
PostgreSQL 16+ Database
JDBC 42.7.8 PostgreSQL connector

UI Libraries

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

UML Diagrams

Diagrams are available in src/main/resources/org/jaliam/jacette/uml/:

  • mld.puml — Logical Data Model
  • mpd.puml — Physical Data Model
  • diagramme-classes.puml — Full class diagram

Configuration

Database

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_password

Docker

To customize PostgreSQL, edit compose.yml:

environment:
  POSTGRES_USER: jacette
  POSTGRES_PASSWORD: your_password

Troubleshooting

PostgreSQL container won't start

# Check logs
docker compose logs db

# Restart the container
docker compose restart db

Database connection error

# Check that the container is running
docker ps

# Test the connection
docker exec local_pgdb psql -U jacette -d jacette -c "SELECT 1;"

Reset the database

docker compose down -v
docker compose up -d

Application won't launch

# Check Java version (must be 24+)
java -version

# Clean and recompile
./mvnw clean compile

Team

PERRET William
EmailPortfolio
BENJABIR Jawad
EmailPortfolio

Developed as part of an academic project at Aix-Marseille University.

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Contributors