Alien Store is a full-featured e-commerce application that provides a seamless shopping experience. The application includes user authentication, product management, cart operations, profile management, and translation services.
- Users can register for an account and log in to access their profile and manage their cart.
- Users can add products to their cart, update quantities, and proceed to checkout.
- Users can view and update their profile information, as well as view their purchase history.
- Users can browse through a list of available products, view product details, and read reviews.
- The application supports multiple languages, allowing users to translate the entire page content into their preferred language.
- Node.js: Ensure you have Node.js installed on your machine. You can download it from Node.js.
- Python: Ensure you have Python installed on your machine. You can download it from Python.
- Docker: Ensure you have Docker installed on your machine. You can download it from Docker.
git clone https://github.com/yourusername/alien-store.git cd alien-store cd backend python -m venv venv activate pip install -r requirements.txt python manage.py migrate python manage.py createsuperuser python manage.py runserver cd .. cd frontend npm install npm start docker-compose up --build
Access the frontend: Open your browser and navigate to http://localhost:3000. Access the backend: Open your browser and navigate to http://localhost:8000.
- The backend is built using Django and Django REST Framework.
- Key functionalities include user authentication, product management, and cart operations.
- API endpoints provide data to the frontend and support CRUD operations for products and user profiles.
- The frontend is built using React and Redux for state management.
- Key functionalities include user registration and login, product browsing, cart management, and profile management.
- The TranslatorButton component allows users to switch languages and translate the page content.
- The application supports multilingual capabilities.
- Text content is extracted from the DOM, sent for translation, and updated in the DOM with the translated text.
- The selected language persists even after a page refresh.
Contributions are welcome! Please follow these steps to contribute: Fork the repository. Create a new branch (git checkout -b feature/your-feature-name). Commit your changes (git commit -m 'Add some feature'). Push to the branch (git push origin feature/your-feature-name). Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.