# Mini Amazon

## Introduction

This is a scalable full-stack web application simulating Amazon where the users can browse products, buy them, and track the order. The application is implemented using Django and PostgreSQL. Here is the detailed requirements for this project:

{% file src="<https://9840377-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MXD5c60uDzrjAPeW5GX%2Fuploads%2FeyoAil7QxSS0tQdPQq9X%2FProject%20Spec.pdf?alt=media&token=0cf1998d-788a-4f3e-bdb7-bb926f73b6ff>" %}

Here is the project repository:

{% embed url="<https://github.com/YushunChen/mini-amazon>" %}

## App Deployment

<figure><img src="https://9840377-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MXD5c60uDzrjAPeW5GX%2Fuploads%2FlifYEGRb3oYQ3JibVQkv%2Fimage.png?alt=media&#x26;token=5ab8deef-7b39-4691-a377-7a88483225df" alt=""><figcaption><p>Project Setup</p></figcaption></figure>

Three essential parts are needed for the complete functionality of this app.

1. Mini Amazon (this application itself)
2. Mini UPS (implemented by other teams)
3. World (a warehouse system under the `world_simulator_exec` directory)

## App Features

### Login/Sign up

<figure><img src="https://9840377-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MXD5c60uDzrjAPeW5GX%2Fuploads%2FfcZQHbcvrjTaKCcP4nBs%2Fimage.png?alt=media&#x26;token=78e76cf0-39d1-4d71-98c5-6bbf0b469c6b" alt=""><figcaption><p>Login</p></figcaption></figure>

<figure><img src="https://9840377-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MXD5c60uDzrjAPeW5GX%2Fuploads%2FP2AUurr5Q1r2DiVvviSV%2Fimage.png?alt=media&#x26;token=8b36d813-8efa-4332-8dd9-d255aca90b02" alt=""><figcaption><p>Sign up</p></figcaption></figure>

The user is able to login to the Mini Amazon store or sign up for a new account. Django authentication is used to ensure security and robustness of the web application.

### Search and Filter

<figure><img src="https://9840377-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MXD5c60uDzrjAPeW5GX%2Fuploads%2FjGViDn3QE82b8J8xZfZg%2Fimage.png?alt=media&#x26;token=2ed8ae75-e1f8-43c2-a6a5-f7b4c29ee69c" alt=""><figcaption><p>Search / Home Page 1</p></figcaption></figure>

<figure><img src="https://9840377-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MXD5c60uDzrjAPeW5GX%2Fuploads%2FJtQ9pu8O63mtqIkkYghm%2Fimage.png?alt=media&#x26;token=fbe1a1a9-5c97-4a73-88a9-e43d688a1891" alt=""><figcaption><p>Home Page 2</p></figcaption></figure>

<figure><img src="https://9840377-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MXD5c60uDzrjAPeW5GX%2Fuploads%2FCVFdU7ayocZqNAhrrw5G%2Fimage.png?alt=media&#x26;token=5a56a7cf-a07c-4d7c-b82b-24d290bcd3a9" alt=""><figcaption><p>Home Page 3</p></figcaption></figure>

<figure><img src="https://9840377-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MXD5c60uDzrjAPeW5GX%2Fuploads%2Frbh0nZjjZGAL3KHuP8Or%2Fimage.png?alt=media&#x26;token=fea57590-468d-4376-8eb3-4f85fb93c36e" alt=""><figcaption><p>Home Page 4</p></figcaption></figure>

<figure><img src="https://9840377-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MXD5c60uDzrjAPeW5GX%2Fuploads%2FuwoDg0gB4HpuWJLhkUHM%2Fimage.png?alt=media&#x26;token=76c082b7-cf6f-4877-af57-8cddd867bd58" alt=""><figcaption><p>Filter</p></figcaption></figure>

Users have the convenience of searching for various product categories available in the web store, such as gloves, enhancing their browsing experience. Additionally, a user-friendly categories dropdown feature allows for effortless filtering of desired items, ensuring a seamless shopping experience.

### Place Orders

<figure><img src="https://9840377-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MXD5c60uDzrjAPeW5GX%2Fuploads%2Fdg4R9prdSWk5sQkFzEwN%2Fimage.png?alt=media&#x26;token=25e41f17-5e16-44a4-93b8-941564bf545f" alt=""><figcaption><p>Place Orders</p></figcaption></figure>

The user can buy products by placing an order where they specify their address (a Cartesian coordinate), product, product count, and their email. Once the order is placed, a confirmation email will be sent to the user.

### Check Order Status

The user can check the status of any of their orders. The time that takes to process the orders depends on the speed of the world simulator, whose details can be read in this repo:

{% embed url="<https://github.com/yunjingliu96/world_simulator_exec>" %}

The status are updated according to the interactions among the three components of the app: Mini Amazon, Mini UPS, and the world simulator.

### Contact

<figure><img src="https://9840377-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MXD5c60uDzrjAPeW5GX%2Fuploads%2Fy3nKQfK7HBMb3K2GZenl%2Fimage.png?alt=media&#x26;token=7206f999-9293-4b68-9eb1-8a41780ae32a" alt=""><figcaption><p>Contact</p></figcaption></figure>

To facilitate effective communication between users and the Mini Amazon store, a user-friendly email functionality is incorporated, allowing users to easily send emails for inquiries or concerns. This feature ensures seamless interactions and fosters better customer support, enhancing overall user satisfaction.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://blog.yushunchen.com/projects/mini-amazon.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
