Skip to content

Commit

Permalink
docs: update README
Browse files Browse the repository at this point in the history
  • Loading branch information
hackerman70000 committed Feb 1, 2025
1 parent 2eedf98 commit 1f82af3
Show file tree
Hide file tree
Showing 12 changed files with 49 additions and 43 deletions.
92 changes: 49 additions & 43 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,67 +1,73 @@
# Pharmacy App
# Your Pharmacy

A pharmacy application with features for user management, product browsing, shopping cart functionality, and email notifications. Built with a Flask backend and React Native frontend, running in Docker with PostgreSQL database.
A full-stack e-commerce solution that brings the pharmacy shopping experience online. Built with Flask, React Native, and PostgreSQL, this modern application provides a seamless shopping experience for health and wellness products.

## Development setup
<div align="center">
<img src="./images/view-index.png" alt="Landing page">
<p><em>Landing page with quick access to shopping</em></p>
</div>

Follow these steps to set up the project locally:
## Features

### Access the Docker Environment
Users can create an account with email verification and track their orders through a personal profile.

In VSCode, use the "Reopen in Container" option to seamlessly open the project inside the container.
<div align="center">
<img src="./images/view-sign-up.png" alt="Sign up page">
<p><em>Registration form with validation</em></p>
</div>

### Backend setup
<div align="center">
<img src="./images/view-profile.png" alt="User profile dashboard">
<p><em>Profile dashboard with order history</em></p>
</div>

```bash
cd backend
uv run flask run -h 0.0.0.0
```
Browse products in grid or list view, with detailed information about each item.

### Frontend setup
<div align="center">
<img src="./images/view-home-list.png" alt="Product catalog">
<p><em>Product catalog in list view</em></p>
</div>

```bash
cd frontend
npx expo start -c
```
<div align="center">
<img src="./images/view-product-details.png" alt="Product details">
<p><em>Detailed product view with purchase options</em></p>
</div>

Access the application at http://localhost (Port 8081).
Manage your shopping cart with real-time updates and easy checkout process.

---
<div align="center">
<img src="./images/view-cart.png" alt="Shopping cart">
<p><em>Shopping cart with quantity adjustments</em></p>
</div>

### Database Management
<div align="center">
<img src="./images/view-order-details.png" alt="Order details">
<p><em>Order details summary</em></p>
</div>

#### Reset Database
Receive email notifications for account verification and order confirmations.

To completely reset the database and its data:
<div align="center">
<img src="./images/email-verification.png" alt="Email verification">
<p><em>Account verification email</em></p>
</div>

```bash
uv run flask db downgrade base
uv run flask db upgrade
```
<div align="center">
<img src="./images/email-order-confirmation.png" alt="Order confirmation email">
<p><em>Order confirmation details</em></p>
</div>

#### CLI Commands
## Technical foundation

Available custom CLI commands:
The application is built on a modern tech stack that ensures reliability and performance. The backend uses Flask with PostgreSQL for data storage, while the frontend is crafted with React Native and styled using TailwindCSS.

```bash
uv run flask seed products
```
This combination provides a responsive and native-like experience across all devices while maintaining robust development and production environments.

### Tests
## Dockerized architecture

Run all tests:

```bash
uv run pytest
```

To run tests in the Docker container:

```bash
docker compose exec backend uv run pytest
```
The entire application is containerized using Docker, with separate containers for the backend, frontend, database, and Nginx as a reverse proxy.

---
This containerized architecture ensures consistent development and deployment environments, making it easy to scale and maintain.

## Production deployment

Expand Down
Binary file added images/email-order-confirmation.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/email-verification.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/view-cart.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/view-email-verification.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/view-home-list.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/view-index.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/view-order-details.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/view-product-details.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/view-profile.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/view-sign-in.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/view-sign-up.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 1f82af3

Please sign in to comment.