- Welcome to the Super Store Project! This is a Django-based web application for managing customers and orders. The project is designed for simple understanding and extension, with an emphasis on creating RESTFUL APIs, Implementation of data structures, Implementation authentication and authorization via OpenID Connect, writing automated tests at all levels (unit, integration, and acceptance), and integrating CI/CD.
- Project Overview
- Features
- Technologies Used
- Getting Started
- Sections
- Screenshots
- API Endpoints
- Unit Testing
- Coverage
- Contributing
- License
- Contact
- A simple Django project that inputs/uploads customers and orders using REST API. Requires users to login or signup using their Google accounts (with the help of Openid Connect). Africastalking sms gateway is implemented to add sms functionality.
- User authentication with OpenID Connect
- Customer management
- Order processing and management
- Responsive design
- Admin panel for managing users, products, and orders
- Django
- Djngorestframework
- MySQL
- mozilla-django-oidc
- HTML, CSS, JavaScript
- Bootstrap
- FontAwesome
- Africastalking
- coverage
- Docker
- Python 3.x
- Django 4.x
- MySQL
- djangorestframework
- mozilla-django-oidc
- python-dotenv
- mysqlclient
- africastalking
- coverage
- Clone the repository:
git clone https://github.com/yourusername/super_store.git```
- Install Dependencies
pip install -r requirements.txt
- Run the Project
python manage.py migrate
python manage.py runserver
- Login Page - user to log in using their google account
- Register Page - New users can register manualy or using their google accounts
- Home Page: Introduction to the project and links to various sections.
- customers page: You can add and view customers here
- Orders Page: You can add and View Orders here
- GET api/order - List all orders
- POST api/order- Create a new orders
- GET api/customer - List all customers
- POST api/customer- Create a new customers
Here are some tests for this project and the steps
run your test using python manage.py test
the tests are in test.py
Use Django TestCase
module to create your own tests
To identify which parts of the code are not tested, thereby revealing untested areas that could potentially harbor bugs, use coverage software
- Install coverage
pip install coverage
- run test using coverage
coverage run manage.py test
- get report ```coverage report``
- Generate report in HTML
coverage html
Contributions are welcome! Please open an issue or submit a pull request with any improvements or new features. Here are the Steps
- Fork the repository
- Create a new branch (git checkout -b feature-name)
- Make your changes
- Commit your changes (git commit -m 'Add new feature')
- Push to the branch (git push origin feature-name)
- Open a pull request
This project is licensed under the MIT License.
If you have any questions, feel free to reach out:
- Name: Sarah Mwangi
- Email: mwangisarah113@gmail.com
- GitHub: Mwangisara