la-chariotte/docs/development/architecture.md
xmeunier 686a31b96a Make aggregated values computed when called instead of stored in DB
- GroupedOrder.total_price
- Order.articles_nb
- Order.price
- Item.ordered_nb
2024-11-05 11:01:02 +00:00

1.2 KiB
Raw Blame History

Application Architecture

The various Django apps created are:

  • order, to manage everything around the orders
  • accounts, to manage account creation. For logging in, logging out, and changing passwords, we use Djangos built-in auth application.
  • mail, for sending emails.

As of today, the class diagram is as follows:

classDiagram
    GroupedOrder "item_set" <-- Item
    GroupedOrder "order_set" <-- Order
    Order "ordered_items" <-- OrderedItem
    Item "orders" <-- OrderedItem
    OrderAuthor "author" <-- Order
    CustomUser "grouped_orders" <-- GroupedOrder

    class GroupedOrder{
      name
      deadline : DateTime
      delivery_date : Date
      delivery_slot
      place
      description
      orga : CustomUser
    }
    class Item{
      name
      grouped_order : GroupedOrder
      ordered_nb
      price
      max_limit
    }
    class Order{
        grouped_order : GroupedOrder
        author : OrderAuthor
        created_date
        note
    }
    class OrderedItem{
        order : Order
        nb
        item : Item
    }
    class OrderAuthor {
        first_name
        last_name
        phone
        email
    }
    class CustomUser{
        first_name
        last_name
        email
    }