Skip to content

GoldenNaina is a feature-rich e-commerce platform built with Django and PostgreSQL, offering a smooth shopping experience with secure user authentication, wishlist management, product search, order tracking, coupon system, and integrated PayPal and Cash on Delivery payment options. The platform includes a custom admin panel for managing products

Notifications You must be signed in to change notification settings

shanu-shahbin/GoldenNaina

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoldenNaina E-commerce Platform

GoldenNaina is an e-commerce platform built using Django and PostgreSQL, featuring wishlist management, coupon functionality, secure payment options, and a customized admin panel. The platform is deployed using AWS services for scalability and performance.

Live at: www.goldennaina.com

GoldenNaina - Google Chrome 9_14_2024 7_56_17 PM


Table of Contents

  1. Features
  2. Tech Stack
  3. Deployment Architecture
  4. Installation and Setup
  5. Docker Setup
  6. Configuration
  7. Usage
  8. Screenshots
  9. Testing
  10. Contributing
  11. License

Features

  • User Authentication: Secure signup and login using email and password, with password reset functionality.
  • Wishlist Management: Users can add and manage their favorite products for future purchases using AJAX for smooth interactions.
  • Product Search: Full-text search and category-based filtering for easy product discovery.
  • Order Tracking: Users can track their orders in real time, with detailed status updates.
  • Coupon System: Apply promotional codes at checkout for discounts.
  • Payment Options: Integrated PayPal and Cash on Delivery for flexible payment solutions.
  • Profile Management: Manage addresses, view wishlist items, and order details from a dedicated profile section.
  • Related Products & Reviews: Display related products and allow users to add and view reviews on product pages.
  • Size Guide: A dedicated page to assist users in selecting the correct sizes.
  • Admin Panel: Custom-built admin panel using Jazmin for managing products, orders, and users.

Tech Stack

Frontend

  • HTML5: For page structure and layout.
  • CSS3: For responsive design and styling.
  • JavaScript: For adding interactive elements and enhancing user experience.
  • AJAX: Used for dynamic wishlist management without reloading pages.

Backend

  • Django: A robust Python framework for handling the server-side logic and database management.
  • PostgreSQL: A relational database for storing product, user, and order data.
  • Psycopg2: PostgreSQL adapter to enable efficient database queries.

Payment Integration

  • PayPal SDK: Integrated to process online payments.
  • Cash on Delivery: Available as an offline payment option for customers.

Admin Panel

  • Jazmin: Custom admin interface to manage backend data efficiently.

Deployment

  • AWS EC2: For hosting the application server.
  • Amazon S3: For storing static files such as images, CSS, and JavaScript.
  • RDS PostgreSQL: Managed database service with automatic backups.
  • Nginx: Used as a reverse proxy for managing incoming web traffic.
  • Gunicorn: Application server used to handle requests.
  • Cloudflare: DNS management, CDN, and protection against DDoS attacks.
  • Docker: Containerized the application for easier deployment.
  • Amazon ECR: Docker images are uploaded to Amazon Elastic Container Registry (ECR) for secure and scalable storage.

Deployment Architecture

Diagram showing the deployment architecture with AWS services
DALL·E 2024-09-15 19 12 44 - A detailed cloud architecture diagram for the GoldenNaina e-commerce platform using AWS services  The diagram should include_ 1) Users accessing the p


Installation and Setup

  1. Clone the repository:
    git clone https://github.com/shanu-shahbin/GoldenNaina.git
    cd GoldenNaina

Create a virtual environment and activate it:

bash Copy code python3 -m venv venv source venv/bin/activate Install dependencies:

bash Copy code pip install -r requirements.txt Set up environment variables for database, AWS services, and PayPal integration in a .env file:

bash Copy code DEBUG=True SECRET_KEY=your_secret_key DATABASE_URL=your_database_url PAYPAL_CLIENT_ID=your_paypal_client_id PAYPAL_SECRET_KEY=your_paypal_secret_key Apply migrations and run the server:

bash Copy code python manage.py migrate python manage.py runserver Docker Setup To containerize and deploy the application using Docker and Amazon ECR:

Create a Dockerfile in the root directory of your project:

dockerfile Copy code

Dockerfile

FROM python:3.9-slim

Set the working directory

WORKDIR /app

Copy the requirements file

COPY requirements.txt /app/

Install the dependencies

RUN pip install --no-cache-dir -r requirements.txt

Copy the entire project

COPY . /app/

Expose the port

EXPOSE 8000

Run the Django application

CMD ["gunicorn", "--bind", "0.0.0.0:8000", "myproject.wsgi:application"] Build the Docker image: bash Copy code docker build -t goldennaina:latest . Login to ECR:

bash Copy code aws ecr get-login-password --region | docker login --username AWS --password-stdin <aws_account_id>.dkr.ecr..amazonaws.com Tag and Push the Docker image to ECR:

Elastic Container Registry - Private repositories - Google Chrome 9_13_2024 9_11_08 PM
bash Copy code docker tag goldennaina:latest <aws_account_id>.dkr.ecr..amazonaws.com/goldennaina:latest docker push <aws_account_id>.dkr.ecr..amazonaws.com/goldennaina:latest

Elastic Container Registry - Private repositories - Google Chrome 9_13_2024 9_11_44 PM
Configuration Before running the project, configure the following environment variables:

SECRET_KEY: Your Django secret key. DATABASE_URL: PostgreSQL connection URL. PAYPAL_CLIENT_ID: PayPal SDK client ID. PAYPAL_SECRET_KEY: PayPal SDK secret key. AWS_ACCESS_KEY_ID: AWS access key for managing S3. AWS_SECRET_ACCESS_KEY: AWS secret key for managing S3. S3_BUCKET_NAME: S3 bucket name for static files. Place these in a .env file at the root of the project.

Usage Once the setup is complete, the application can be accessed via http://localhost:8000 in a local environment.

Key functionalities:

Browse products, add to wishlist, and checkout with payment. Access user profile to manage orders and addresses. Admins can log in to the custom admin panel to manage users, products, and orders. Screenshots

  1. User Dashboard

GoldenNaina - Google Chrome 9_15_2024 7_33_57 PM

GoldenNaina - Google Chrome 9_15_2024 7_34_18 PM

  1. Admin Panel

GoldenNaina - Google Chrome 9_15_2024 7_35_41 PM

GoldenNaina - Google Chrome 9_15_2024 7_35_57 PM

  1. Product Page

GoldenNaina - Google Chrome 9_15_2024 7_37_30 PM

GoldenNaina - Google Chrome 9_15_2024 7_37_59 PM

  1. Payment Options

  2. Deployement Launch an instance _ EC2 _ us-west-2 - Google Chrome 9_7_2024 6_22_13 PM

CreateSecurityGroup _ EC2 _ us-west-2 - Google Chrome 9_7_2024 6_33_13 PM

Database Details - RDS Management Console - Google Chrome 9_10_2024 1_30_54 PM

Database Details - RDS Management Console - Google Chrome 9_10_2024 1_32_25 PM

ModifyInboundSecurityGroupRules _ EC2 _ us-west-2 - Google Chrome 9_12_2024 1_04_01 PM

Elastic Container Registry - Private repositories - Google Chrome 9_13_2024 9_14_18 PM

Elastic Container Registry - Private repositories - Google Chrome 9_13_2024 9_14_33 PM

Elastic Container Registry - Private repositories - Google Chrome 9_13_2024 9_14_53 PM

Contributing Contributions are welcome! If you find any issues or have feature requests, please open an issue or submit a pull request. Before contributing, please ensure you:

Fork the repository. Create a new branch for your feature/fix. Commit your changes with descriptive commit messages. Open a pull request to the main branch.

License This project is licensed under the MIT License. See the LICENSE file for details.

About

GoldenNaina is a feature-rich e-commerce platform built with Django and PostgreSQL, offering a smooth shopping experience with secure user authentication, wishlist management, product search, order tracking, coupon system, and integrated PayPal and Cash on Delivery payment options. The platform includes a custom admin panel for managing products

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published