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

59 lines
1.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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:
```mermaid
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
}
```