EvoTime is a modern Django-based e-commerce platform featuring dynamic user experiences, an integrated shopping cart, product management, wishlist functionality, and a secure checkout process. It utilizes Tailwind CSS for a sleek and responsive UI and integrates with various third-party services like Razorpay for payments, Cloudinary for media storage, and Google for social authentication.
- User Authentication: Secure signup and login process with options for Email verification and Google OAuth integration using
django-allauth. - Product Management: A robust catalog supporting varied products.
- Cart & Wishlist: Seamless shopping cart and wishlist management.
- Payment Gateway: Integrated with Razorpay for secure online payments.
- Media Storage: Cloudinary integration for scalable and fast image/media delivery.
- Modern UI: Styled with Tailwind CSS directly via CDN.
- Backend: Django (Python 3)
- Database: PostgreSQL
- Frontend: HTML5, Vanilla JavaScript, Tailwind CSS (CDN)
- Services: Razorpay, Cloudinary, Google OAuth
Ensure you have the following installed on your system:
Follow these steps to get your development environment running using Docker:
git clone <your-repository-url>
cd EvoTimeThe project uses python-decouple to manage environment variables. You will need to create a .env file inside the inner EvoTime folder (the same directory as settings.py and manage.py) with the following necessary keys:
# Django Settings
SECRET_KEY=your_django_secret_key
DEBUG=True
# Database Configuration
DATABASE_NAME=your_db_name
DATABASE_USER=your_db_user
DATABASE_PASSWORD=your_db_password
DATABASE_HOST=db
DATABASE_PORT=5432
# Cloudinary Storage Settings
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
# Razorpay Settings
RAZORPAY_KEY_ID=your_razorpay_key_id
RAZORPAY_KEY_SECRET=your_razorpay_key_secret
# Google OAuth (For Social Login)
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
# Email Configuration
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USE_TLS=True
EMAIL_HOST_USER=your_email@gmail.com
EMAIL_HOST_PASSWORD=your_app_passwordNavigate to the directory containing the docker-compose.yml file (the inner EvoTime directory) and start the containers:
cd EvoTime
docker-compose up --build -dThis command will build the Docker image, start the PostgreSQL database and Django web server, and automatically run the database migrations and collect static files.
To access the Django Admin panel, you can run the createsuperuser command inside the running web container:
docker-compose exec web python manage.py createsuperuserYou can now view the application at http://127.0.0.1:8001/. The admin panel is available at http://127.0.0.1:8001/admin/.
admin_home/- Handles the admin dashboard and metrics.user_home/- Manages user profiles, authentication (login, signup, OTP), and home page.Products/- App dedicated to the product catalog.Cart/- Handles cart operations.Wishlist/- Manages user favorite items.templates/- Contains all HTML files formatted with Tailwind CSS classes.static/- Stores raw static files like custom CSS, images, or JS logic.