Skip to content

Latest commit

 

History

History
324 lines (275 loc) · 11.9 KB

README.md

File metadata and controls

324 lines (275 loc) · 11.9 KB

Contributors Forks Stargazers Issues Pull Request MIT License


Table of Contents
  1. About The Project
  2. Getting Started
  3. Project Structure
  4. REST API
  5. Contributing
  6. License
  7. Contact

🔍 About The Project

(back to top)

🗃️ Built With

💡 Language & Framework

python fastapi

💡 Infrastructure

aws

💡 Environment (CI/CD, Package tools...)

Github-actions

(back to top)

🚀 Getting Started

⚡ Prerequisites

Download and install packages and associated dependencies via pip install

  • python
    pip install -r requirements.txt
    source ./venv/bin/activate

If you want to use Docker, then run docker compose up -d(Also it needs to stop with docker compose down).

** Also, you have to run black ./ before making pull request.

✏️ Configuration

Setting environment variables through .env

# .env

SECRET_KEY=secret
DEBUG=True
MYSQL_HOST=mysql-db
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=1234
DB_NAME=fastapi
BUCKET_NAME=
AWS_ACCESS_KEY=
AWS_SECRET_KEY=
AWS_SESSION_TOKEN=
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GOOGLE_CALLBACK_URL=

(back to top)

🌐 Project Structure

├── Dockerfile
├── LICENSE
├── app
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-310.pyc
│   │   ├── __init__.cpython-311.pyc
│   │   ├── main.cpython-310.pyc
│   │   └── main.cpython-311.pyc
│   ├── api
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   │   ├── __init__.cpython-310.pyc
│   │   │   └── __init__.cpython-311.pyc
│   │   ├── dependencies
│   │   │   ├── __init__.py
│   │   │   ├── __pycache__
│   │   │   │   ├── __init__.cpython-310.pyc
│   │   │   │   ├── __init__.cpython-311.pyc
│   │   │   │   ├── database.cpython-310.pyc
│   │   │   │   └── database.cpython-311.pyc
│   │   │   └── database.py
│   │   ├── errors
│   │   │   ├── __init__.py
│   │   │   ├── __pycache__
│   │   │   │   ├── __init__.cpython-310.pyc
│   │   │   │   ├── __init__.cpython-311.pyc
│   │   │   │   ├── http_error.cpython-310.pyc
│   │   │   │   ├── http_error.cpython-311.pyc
│   │   │   │   ├── validation_error.cpython-310.pyc
│   │   │   │   └── validation_error.cpython-311.pyc
│   │   │   ├── http_error.py
│   │   │   └── validation_error.py
│   │   └── routes
│   │       ├── __init__.py
│   │       ├── __pycache__
│   │       │   ├── __init__.cpython-310.pyc
│   │       │   ├── __init__.cpython-311.pyc
│   │       │   ├── api.cpython-310.pyc
│   │       │   ├── api.cpython-311.pyc
│   │       │   └── users.cpython-311.pyc
│   │       ├── api.py
│   │       └── users.py
│   ├── core
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   │   ├── __init__.cpython-311.pyc
│   │   │   ├── config.cpython-311.pyc
│   │   │   └── logging.cpython-311.pyc
│   │   ├── config.py
│   │   └── logging.py
│   ├── db
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   │   ├── __init__.cpython-311.pyc
│   │   │   ├── base.cpython-311.pyc
│   │   │   ├── base_class.cpython-311.pyc
│   │   │   └── session.cpython-311.pyc
│   │   ├── base.py
│   │   ├── base_class.py
│   │   └── session.py
│   ├── main.py
│   ├── models
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   │   └── __init__.cpython-311.pyc
│   │   ├── domain
│   │   │   ├── __init__.py
│   │   │   ├── __pycache__
│   │   │   │   ├── __init__.cpython-311.pyc
│   │   │   │   └── users.cpython-311.pyc
│   │   │   ├── jwt.py
│   │   │   ├── token.py
│   │   │   └── users.py
│   │   └── schemas
│   │       ├── __init__.py
│   │       ├── __pycache__
│   │       │   ├── __init__.cpython-311.pyc
│   │       │   └── users.cpython-311.pyc
│   │       └── users.py
│   ├── resources
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   │   ├── __init__.cpython-311.pyc
│   │   │   └── strings.cpython-311.pyc
│   │   └── strings.py
│   └── services
│       ├── __init__.py
│       ├── __pycache__
│       │   ├── __init__.cpython-311.pyc
│       │   ├── authentication.cpython-311.pyc
│       │   ├── jwt.cpython-311.pyc
│       │   └── security.cpython-311.pyc
│       ├── authentication.py
│       ├── jwt.py
│       └── security.py
├── docker-compose.yml
├── fastapi.sql
├── requirements.txt
├── scripts
│   ├── format
│   ├── lint
│   ├── test
│   └── test-cov-html
├── setup.cfg
└── tests
    ├── __init__.py
    ├── conftest.py
    ├── test_api
    │   ├── __init__.py
    │   ├── test_errors
    │   │   ├── __init__.py
    │   │   ├── test_422_error.py
    │   │   └── test_error.py
    │   └── test_routes
    │       ├── __init__.py
    │       ├── test_articles.py
    │       ├── test_authentication.py
    │       ├── test_comments.py
    │       ├── test_login.py
    │       ├── test_profiles.py
    │       ├── test_registration.py
    │       ├── test_tags.py
    │       └── test_users.py
    ├── test_schemas
    │   ├── __init__.py
    │   └── test_rw_model.py
    ├── test_services
    │   ├── __init__.py
    │   └── test_jwt.py
    └── testing_helpers.py

(back to top)

📝 REST API

🔥 Contributing

Please refer to CONTRIBUTION.txt for Contribution.

For issues, new functions and requests to modify please follow the following procedure. 🥰

  1. Fork the Project
  2. Create a Issue when you have new feature or bug, just not Typo fix
  3. Create your Feature Branch from dev Branch (git checkout -b feature/Newfeature)
  4. Commit your Changes (git commit -m 'feat: add new feature')
  5. Push to the Branch (git push origin feature/Newfeature)
  6. Open a Pull Request to dev branch with Issues

(back to top)

🔐 License

Please refer to LICENSE.txt for LICENSE.

(back to top)

💬 Contact


Sumin Kim

Dahyun Kang

Nahyun Kim

(back to top)