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.
- 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/OrderItemdatabase 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
- 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
TestCaseframework, withunittest.mockused to test external API integrations without real network calls - Environment management:
python-decouplefor secure credential handling via.env
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
-
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
-
Install dependencies:
pip install -r requirements.txt
-
Create a
.envfile 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 -
Set up PostgreSQL and run migrations:
python manage.py migrate python manage.py seed_products python manage.py createsuperuser
-
Run the development server:
python manage.py runserver
FeliMart has an automated test suite covering models, views, and external API integrations:
python manage.py testThe suite includes:
- Model tests for
Product,Order,OrderItem, andAdvisorHistory - 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.mockso tests run without making real network calls to PayPal or Anthropic
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.
- Django ORM, models, and migrations
- PostgreSQL setup, raw SQL (SELECT, JOIN, GROUP BY), schema/permission troubleshooting
- Automated testing with Django's
TestCaseframework, including mocked external API calls (Anthropic API, PayPal REST SDK) viaunittest.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




