No description
  • TypeScript 98%
  • Rust 2%
Find a file
2026-07-04 01:12:53 +02:00
.github git tooling 2026-06-24 22:10:09 +02:00
.idea initial commit 2026-06-24 21:59:57 +02:00
resources extensive doc for API & DB 2026-07-04 01:12:14 +02:00
src initial commit 2026-06-24 21:59:57 +02:00
.gitignore md docs 2026-06-25 00:54:58 +02:00
.prekignore git tooling 2026-06-24 22:10:09 +02:00
Cargo.lock initial commit 2026-06-24 21:59:57 +02:00
Cargo.toml initial commit 2026-06-24 21:59:57 +02:00
CONTRIBUTING.md Update CONTRIBUTING.md 2026-06-25 00:45:18 +02:00
IMPLEMENTATION_PLAN.md extensive doc for API & DB 2026-07-04 01:12:14 +02:00
LICENSE Create LICENSE 2026-06-25 00:43:43 +02:00
prek.toml git tooling 2026-06-24 22:10:09 +02:00
README.md README 2026-06-25 01:20:47 +02:00

Foodly Backend

This is the backend server for Foodly, a collaborative recipe management application. The backend handles real-time live editing, offline synchronization, and shared recipes using WebSockets and a custom change backlog strategy.

Frontend: The companion mobile and web frontend for Foodly can be found here: Foodly-FE

Features

  • Real-Time Live Editing: Edit recipes collaboratively with other users in real-time via WebSockets.
  • Offline Sync: Client changes are cached offline as a change backlog and synchronized when the connection is restored, automatically resolving conflicts.
  • Shared Recipes: Full support for sharing recipes with specific permissions (owners, editors, and viewers).
  • Structured Data: Supports complex recipe elements including sections, ingredients, tags, images, and user ratings.

Tech Stack

The backend is built in Rust to ensure high performance, memory safety, and robust concurrency handling.

  • Language: Rust
  • Web Framework: Axum (HTTP & WebSockets)
  • Database: PostgreSQL
  • Database Driver: SQLx (Async, compile-time checked SQL)
  • Authentication: JWT via REST endpoint
  • Async Runtime: Tokio

Architecture

  • WebSocket API: Primary communication layer for syncing recipe changes and broadcasting updates to subscribed clients.
  • REST API: Handles initial connection bootstrapping, such as authentication (/login).
  • Sync Strategy: Custom backlog processing. The server applies offline changes sequentially and drops incoming conflicting changes to maintain a consistent state.

Installation & Setup

(Installation instructions to be provided later — will utilize Docker for easy self-hosting.)

License

See the LICENSE file for more information.