Introduction

Organize your shopping experience

Core Features

The application enables users to:

  1. Create and Manage Categories - Organize shopping items into custom categories
  2. Create and Manage Shops - Set up specific shops or stores within each category
  3. Add and Track Items - Add shopping items to shops, mark them as important, and track their status
  4. Browse Shopping Lists - View items organized by category and shop
  5. Real-time Updates - WebSocket connections allow for live updates of item states

Technology Stack

  • Rocket (v0.5.0) - Web framework with JSON support
  • Tera templates - Server-side template rendering
  • rocket_ws - WebSocket support for real-time communication
  • JSON file storage - Data persistence using JSON files
  • CORS support - Cross-origin resource sharing for API access

Architecture

The project is modular with separate modules for:

  • categories.rs - Category management
  • items.rs - Item management and tracking
  • shops.rs - Shop management
  • templates.rs - UI rendering
  • common.rs - Shared utilities and file I/O
  • error.rs - Custom error handling

Data is stored in a JSON file structure organized by category, with a "Mall" structure that holds both items and shops per category. The application provides RESTful API endpoints for CRUD operations and uses WebSocket for real-time updates when items are modified.

This is essentially a modern, fully-featured shopping list application with real-time collaboration capabilities, built with Rust and serving as a bulletin board for tracking shopping needs.

[Legacy block post] (https://confusedoncoffee.github.io/projects/shopping/)