/Hive-Backend

🐝 Hive Project Back-End Repo

Primary LanguagePythonMIT LicenseMIT

🐝 Hive Fundraiser - Backend 🐝

Welcome to the Hive Fundraiser backend repository. This project was created for a software testing lesson. This is where all the magic happens to support our fundraising platform.

🚀 Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

git clone https://github.com/Hive-Fundraiser/Hive-Backend.git

📋 Running project with docker ⛴

docker compose up

🔧 Running project with virtual env

pip install virtualenv

Windows setup:

#creating the enviroment
python -m venv venv

#activating the enviroment
venv\Scripts\activate

#deactivating enviroment
deactivate

Linux and Mac setup:

#creating the enviroment
python -m venv venv

#activating the enviroment
source venv/bin/activate

#deactivating enviroment
deactivate

then installing the requirements:

pip install -r requirements.txt

Running the Project

in order to run the project you need to use either ways below

default and development settings

python manage.py runserver 

🏃 Running the tests

pytest .

🛠️ Built With

  • django - Django framework
  • nginx - Nginx
  • posgressql - Posgres sql for database

📚 Curriculum

  • Setting up project with Docker (dockerfile/docker-compose)
  • Setup Django Model for a Blog and AbstractBaseUser
  • Implement Class Based Views
  • Django RestFramework and Serializers (FBV)
  • ClassBasedViews in RestFramework (views,generic,viewset)
  • Api Documentation with swagger and redoc
  • Authentication API (Token/JWT)
  • Reformat and Lint (flake8,black)
  • Django TestCase and PyTest
  • Django CI with github actions
  • Populate Database with Faker and Django Commands
  • Cores Headers
  • Load Testing with Locust
  • Get ready for deploy (gunicorn/nginx)
  • Use postgres sql as a database
  • Use google smtp server

📐 Model Schema

Model Schema

🤝 Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

🎉 Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

👥 Authors

See also the list of contributors who participated in this project.

📄 License

This project is licensed under the MIT License - see the LICENSE.md file for details

🙏 Acknowledgments

  • Hat tip to anyone whose code was used
  • Inspiration
  • etc