No description
Find a file
Natalia Cholewa a32f4cd781 Merge branch 'fix/even-better-i18n' into 'main'
Fix: improve i18n and finish up the last untranslated text

See merge request cse1105/2025-2026/teams/csep-team-76!96
2026-01-24 14:30:33 +01:00
.mvn/wrapper Initial commit 2025-11-13 22:26:09 +01:00
client fix: improve i18n 2026-01-24 14:25:39 +01:00
commons Merge branch 'fix/normalized-units' into 'main' 2026-01-23 21:20:25 +01:00
docs docs: minutes week 9 (final) 2026-01-24 13:25:52 +01:00
server Added a few extra tests in RecipeControllerTest 2026-01-22 22:37:49 +01:00
.gitignore chore(gitignore): add trace.db and config.json to ignore-list 2026-01-09 15:11:58 +01:00
.gitlab-ci.yml Initial commit 2025-11-13 22:26:09 +01:00
checkstyle.xml feat: new rule to check javadoc comments 2025-12-07 21:17:33 +01:00
code-of-conduct.md docs: code of conduct v2 2025-11-27 22:55:07 +01:00
countlines.bat added personal line counting util 2025-11-27 16:08:36 +01:00
countlines.sh added personal line counting util 2025-11-27 16:08:36 +01:00
LICENSE.txt Initial commit 2025-11-13 22:26:09 +01:00
locc.sh added a Dialog sequence for when the server is not up, which was previously just a log msg. Now the user gets to provide their own server. 2026-01-21 22:48:07 +01:00
mvnw Initial commit 2025-11-13 22:26:09 +01:00
mvnw.cmd Initial commit 2025-11-13 22:26:09 +01:00
pom.xml Initial commit 2025-11-13 22:26:09 +01:00
README.md chore: update README to express implemented features 2026-01-23 15:05:15 +01:00
suppressions.xml fix: MagicNumber check disabled in tests 2025-12-07 21:17:02 +01:00

CSEP FoodPal Application (Team 76)

Usage

The project uses Java 25. Make sure you have the correct Java version installed.

Client

mvn -pl client -am javafx:run

Server

By default, the server listens to the port 8080. If the server is not available, the next immediate free port is opened. You can run the server with:

mvn -pl server -am spring-boot:run

Implemented features

  • Full 4.1 basic requirements criteria. Print/Export functionality exports a plain-text file of the recipe to a file in a location of the user's choosing.
  • Full 4.2 WebSocket modelling. We have implemented all points in the backlog and created a compliant solution using distinct STOMP messages that distribute handling to multiple distinct callbacks. We also implemented a meaningful addition as an "Updated at {Time}" utility prompt such that the application hints to the user when it may be time to perform a manual refresh to stay up-to-date.
  • Full 4.3 Nutrition view and list of ingredients. We have implemented each criteria in the product backlog pertaining to this section to a satisfactory level. When in confusion, the user should consult Manual.Ingredients section of this file to see how to add an informal or formal ingredient. We also include a meaningful addition into the application as a pie chart describing the nutritional composition of each recipe between proteins, carbohydrates, and fats, so that the end user gets a much more straightforward presentation for their dietary choices.
  • Full 4.4 search functionality implemented. Each criteria is met to satisfactory standards and the client submits a search query to the backend with a list of parameters, to which the client proceeds to respond.
  • Full 4.5 Shopping list functionality. We implemented a functional shopping list to which the user can add/delete/edit ingredients to, as well as an Add Overview when the user decides to add ingredients of a recipe into their shopping list. Printing the list to a file is also supported.
  • Full 4.6 functionality. All parts of the UI buttons have been linked to their respective resource items. The application has support for 7 languages, including English, Dutch, Chinese (Simplified/Traditional), Polish, Turkish, and toki pona. We include a national flag for each language in a language selection menu for easier interaction with the end user.

Manual

Configuration

The configuration is with JSON, read from config.json in the working directory. We illustrate an example configuration below.

{
    "language": "en",
    "serverUrl": "http://localhost:8080",
    "favourites": [
        1,
    ],
    "shoppingList": [
        "Ingredient A",
    ],
}

Options

  • language: string
    • One of [en, nl, pl] (as of Jan 11 2026)
  • serverUrl: string
    • The host that the FoodPal server runs on, see configuration example.
  • favourites: [number]
    • The list of recipe IDs that the user has marked as favourite.
  • shoppingList: [string]
    • The list of ingredients that the user has in their shopping list.

Ingredients

  • To input a formal ingredient, you write the numeric amount in the first input box, then the Unit in the selection dropdown, and then write the name of the ingredient, e.g. salt, apples, etc. should it be not visible already from the dropdown.
  • To input an informal ingredient, describe the amount in the first input box, like "some of", or "a sprinkle of", then select "" in the unit selection box, and write the name of your ingredient or pick from one of the availables from the dropdown.