https://github.com/jpcadena/black-clover
Black Clover RESTful API
https://github.com/jpcadena/black-clover
aioredis api async asyncpg backend fastapi gunicorn jwt postgresql postgresql-database pydantic pylint python redis restful-api sql sqlalchemy starlette swagger uvicorn
Last synced: 14 days ago
JSON representation
Black Clover RESTful API
- Host: GitHub
- URL: https://github.com/jpcadena/black-clover
- Owner: jpcadena
- License: mit
- Created: 2023-03-26T05:24:45.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2023-04-07T22:10:13.000Z (about 3 years ago)
- Last Synced: 2025-07-14T18:58:25.465Z (10 months ago)
- Topics: aioredis, api, async, asyncpg, backend, fastapi, gunicorn, jwt, postgresql, postgresql-database, pydantic, pylint, python, redis, restful-api, sql, sqlalchemy, starlette, swagger, uvicorn
- Language: Python
- Homepage: https://github.com/jpcadena/black-clover
- Size: 26.2 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# black-clover
Table of Contents
## About the project
This project is about Black Clover.
![Project][project-screenshot]
In the Clover Kingdom, The Wizard King requires designing a system for the magic academy; this must perform the registration of the student's request and the random assignment of the Grimoire to him. The level of these Grimoires is categorized by the type of clover on the cover:
* Sincerity – 1-leaf clover.
* Hope – 2-leaf clover.
* Love – 3-leaf clover.
* Good Fortune - 4-leaf clover.
* Despair – 5-leaf clover.
Students will have one of the following magic affinities:
* Darkness
* Light
* Fire
* Water
* Wind
* Earth
For this requirement it is required to expose a Rest API, built with the aforementioned tools.
The endpoints necessary to support the following operations must be exposed:
* Send application for admission.
* Update admission application.
* Update application status.
* Consult all requests.
* Consult Grimoire assignments.
* Delete application for admission.
Once the application is approved, the self-assignment of the Grimoire and the cover must be made.
Applications for admission must indicate at least the following information of the applicant:
* Name (only letters, maximum 20 characters).
* Last name (letters only, maximum 20 characters).
* Identification (numbers and letters, maximum 10 characters).
* Age (only numbers, 2 digits).
* Magical Affinity (mentioned above).
### Built with
* [![Python][Python]][python-url]
* [![FastAPI][FastAPI]][fastapi-url]
* [![Pydantic][Pydantic]][pydantic-url]
* [![Starlette][starlette]][starlette-url]
* [![Uvicorn][uvicorn]][uvicorn-url]
* [![Gunicorn][gunicorn]][gunicorn-url]
* [![PostgreSQL][postgresql]][postgresql-url]
* [![jwt][jwt]][jwt-url]
* [![MJML][mjml]][mjml-url]
* [![HTML5][html5]][html5-url]
* [![Pylint][pylint]][pylint-url]
* [![Pycharm][Pycharm]][Pycharm-url]
* [![Markdown][Markdown]][Markdown-url]
* [![Swagger][Swagger]][Swagger-url]
## Getting started
### Prerequisites
* [Python 3.10+][Python-docs]
### Installation
1. Clone the **repository**
```
git clone https://github.com/jpcadena/black-clover.git
```
2. Change the directory to **root project**
```
cd black-clover
```
3. Create a **virtual environment** *venv*
```
python3 -m venv venv
```
4. Activate **environment** in Windows
```
.\venv\Scripts\activate
```
5. Or with Unix/Mac OS X
```
source venv/bin/activate
```
6. Install requirements with PIP
```
pip install -r requirements.txt
```
### Usage
1. If found **sample.env**, rename it to **.env**.
2. Replace your **credentials** into the *.env* file.
3. Execute with console
```
python main.py
```
## Contributing
[![GitHub][GitHub]][github-url]
If you have a suggestion that would make this better, please fork the repo and
create a pull request.
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
Use docstrings with **reStructuredText** format by adding triple double quotes
**"""** after function definition.\
Add a brief function description, also for the parameters including the return
value and its corresponding data type.\
Please use **linting** to check your code quality
following [PEP 8](https://peps.python.org/pep-0008/).\
Check documentation
for [Visual Studio Code](https://code.visualstudio.com/docs/python/linting#_run-linting)
or [Jetbrains Pycharm](https://github.com/leinardi/pylint-pycharm/blob/master/README.md).\
Recommended plugin for
autocompletion: [Tabnine](https://www.tabnine.com/install)
## License
Distributed under the MIT License.
## Contact
- [![LinkedIn][LinkedIn]][linkedin-url]
- [![Outlook][Outlook]](mailto:jpcadena@espol.edu.ec?subject=[GitHub]black-clover)
[LinkedIn]: https://img.shields.io/badge/linkedin-%230077B5.svg?style=for-the-badge&logo=linkedin&logoColor=white
[linkedin-url]: https://linkedin.com/in/juanpablocadenaaguilar
[Outlook]: https://img.shields.io/badge/Microsoft_Outlook-0078D4?style=for-the-badge&logo=microsoft-outlook&logoColor=white
[project-screenshot]: app/assets/static/images/project.png
[Python-docs]: https://docs.python.org/3.10/
[Python]: https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54
[FastAPI]: https://img.shields.io/badge/FastAPI-FFFFFF?style=for-the-badge&logo=fastapi
[Pydantic]: https://img.shields.io/badge/Pydantic-FF43A1?style=for-the-badge&logo=pydantic&logoColor=white
[Starlette]: https://img.shields.io/badge/Starlette-392939?style=for-the-badge&logo=starlette&logoColor=white
[Uvicorn]: https://img.shields.io/badge/Uvicorn-2A308B?style=for-the-badge&logo=uvicorn&logoColor=white
[Gunicorn]: https://img.shields.io/badge/Gunicorn-489846?style=for-the-badge&logo=gunicorn&logoColor=white
[Pylint]: https://img.shields.io/badge/linting-pylint-yellowgreen
[PostgreSQL]: https://img.shields.io/badge/PostgreSQL-336791?style=for-the-badge&logo=postgresql&logoColor=white
[html5]: https://img.shields.io/badge/HTML5-E34F26?style=for-the-badge&logo=html5&logoColor=white
[MJML]: https://img.shields.io/badge/MJML-EB5F3F?style=for-the-badge&logo=mjml&logoColor=white
[JWT]: https://img.shields.io/badge/JWT-black?style=for-the-badge&logo=JSON%20web%20tokens
[PyCharm]: https://img.shields.io/badge/PyCharm-21D789?style=for-the-badge&logo=pycharm&logoColor=white
[Markdown]: https://img.shields.io/badge/Markdown-000000?style=for-the-badge&logo=markdown&logoColor=white
[Swagger]: https://img.shields.io/badge/-Swagger-%23Clojure?style=for-the-badge&logo=swagger&logoColor=white
[python-url]: https://www.python.org/
[fastapi-url]: https://fastapi.tiangolo.com
[pydantic-url]: https://docs.pydantic.dev
[starlette-url]: https://www.starlette.io/
[uvicorn-url]: https://www.uvicorn.org/
[gunicorn-url]: https://gunicorn.org/
[pylint-url]: https://www.pylint.org/
[postgresql-url]: https://www.postgresql.org/
[html5-url]: https://developer.mozilla.org/en-US/docs/Glossary/HTML5
[mjml-url]: https://mjml.io/
[jwt-url]: https://jwt.io/
[Pycharm-url]: https://www.jetbrains.com/pycharm/
[Markdown-url]: https://daringfireball.net/projects/markdown/
[Swagger-url]: https://swagger.io/
[GitHub]: https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white
[GitHub-url]: https://github.com/jpcadena/black-clover