Skip to content
AzuMaoooPublic

About

Full-stack Django e-commerce app with PostgreSQL, PayPal Sandbox, and an AI shopping advisor. Built to demonstrate backend skills for internship applications.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

FeliMart 🐾

A full-stack Django e-commerce web app built as a companion project to AnimaFelis, a cat-themed virtual pet game.

Note: FeliMart shares a visual theme with AnimaFelis but is a technically separate project (Django/PostgreSQL web app vs. Unity/C# mobile game). It was built to close a specific skills gap for backend-focused internship roles.

Features

  • Product catalog with category and rarity filtering (food, toy, accessory), including custom pixel art product images
  • Session-based shopping cart with add, remove, and quantity update functionality
  • User authentication via Django's built-in auth system
  • Order system with a real Order/OrderItem database model, order confirmation flow, and status tracking (pending, paid, cancelled)
  • PayPal Sandbox integration for a complete, real checkout and payment flow
  • AI Shopping Advisor powered by the Anthropic API, giving product recommendations grounded in FeliMart's actual catalog (not hallucinated suggestions), with persistent per-user question history and quick-suggestion FAQ buttons
  • Django admin panel for product management

Screenshots

Storefront

Storefront

Shopping Cart

Cart

Order Confirmation & PayPal Checkout

PayPal Checkout Checkout

AI Shopping Advisor

AI Advisor

Tech Stack

  • Backend: Django 6.1 (Python)
  • Database: PostgreSQL
  • Frontend: Django Templates, Bootstrap 5
  • Payments: PayPal Sandbox (via paypalrestsdk)
  • AI: Anthropic API (Claude), for the shopping advisor feature
  • Testing: Django's built-in TestCase framework, with unittest.mock used to test external API integrations without real network calls
  • Environment management: python-decouple for secure credential handling via .env

Project Structure

felis_mart/
├── felis_mart/          # Project settings, root URLs
├── store/                # Main app
│   ├── models.py         # Product, Order, OrderItem, AdvisorHistory
│   ├── views.py           # All view logic
│   ├── urls.py             # App-level routing
│   ├── tests.py            # Model and view test suite
│   ├── management/
│   │   └── commands/
│   │       └── seed_products.py   # Seeds 12 starter products
│   └── templates/store/    # HTML templates
└── manage.py

Setup Instructions

  1. Clone the repo and create a virtual environment:

    git clone https://github.com/AzuMaooo/FeliMart.git
    cd FeliMart
    python -m venv venv
    venv\Scripts\activate  # Windows
  2. Install dependencies:

    pip install -r requirements.txt
  3. Create a .env file in the project root with:

    DB_NAME=felismart
    DB_USER=your_db_user
    DB_PASSWORD=your_db_password
    DB_HOST=localhost
    DB_PORT=5432
    PAYPAL_CLIENT_ID=your_paypal_sandbox_client_id
    PAYPAL_SECRET=your_paypal_sandbox_secret
    PAYPAL_MODE=sandbox
    ANTHROPIC_API_KEY=your_anthropic_api_key
    SECRET_KEY=your_django_secret_key
    DEBUG=True
    ALLOWED_HOSTS=127.0.0.1,localhost
    
  4. Set up PostgreSQL and run migrations:

    python manage.py migrate
    python manage.py seed_products
    python manage.py createsuperuser
  5. Run the development server:

    python manage.py runserver

Testing

FeliMart has an automated test suite covering models, views, and external API integrations:

python manage.py test

The suite includes:

  • Model tests for Product, Order, OrderItem, and AdvisorHistory
  • View tests for product browsing, cart (add/remove/update), and checkout, including login-required behavior and edge cases like empty carts and invalid product IDs
  • Mocked external API tests for the PayPal payment flow and the AI Shopping Advisor, using unittest.mock so tests run without making real network calls to PayPal or Anthropic

Project Status

FeliMart's core storefront, cart, checkout with PayPal Sandbox, the AI shopping advisor, and a full automated test suite are complete and fully functional. AWS deployment (RDS, Elastic Beanstalk, S3) is in progress but currently paused pending AWS account payment verification.

Skills Demonstrated

  • Django ORM, models, and migrations
  • PostgreSQL setup, raw SQL (SELECT, JOIN, GROUP BY), schema/permission troubleshooting
  • Automated testing with Django's TestCase framework, including mocked external API calls (Anthropic API, PayPal REST SDK) via unittest.mock
  • Session management and secure credential handling (python-decouple)
  • Third-party API/SDK integration (PayPal REST SDK, Anthropic API)
  • Django authentication and view-level authorization (@login_required, ownership checks)
  • Template inheritance, Bootstrap-based responsive UI
  • Git version control with a clean commit history

About

Full-stack Django e-commerce app with PostgreSQL, PayPal Sandbox, and an AI shopping advisor. Built to demonstrate backend skills for internship applications.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages