{"id":20433306,"url":"https://github.com/jpcadena/tweets-classification-backend","last_synced_at":"2026-04-13T00:15:43.702Z","repository":{"id":158515286,"uuid":"605335630","full_name":"jpcadena/tweets-classification-backend","owner":"jpcadena","description":"FastAPI Backend for NLP Project on Tweets classification about national insecurity at Ecuador.","archived":false,"fork":false,"pushed_at":"2023-06-17T02:04:25.000Z","size":3848,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-15T18:47:01.430Z","etag":null,"topics":["aiofiles","aioredis","async","asyncpg","backend","classification-model","fastapi","gunicorn","jwt-authentication","postgresql","pydantic","python","python-jose","redis","restapi","sql","sqlalchemy","starlette","tweets","uvicorn"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jpcadena.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-23T00:04:21.000Z","updated_at":"2023-10-20T03:41:19.000Z","dependencies_parsed_at":"2025-01-15T18:17:56.239Z","dependency_job_id":"99293567-e2c0-4e0c-a922-24775bef277d","html_url":"https://github.com/jpcadena/tweets-classification-backend","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpcadena%2Ftweets-classification-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpcadena%2Ftweets-classification-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpcadena%2Ftweets-classification-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpcadena%2Ftweets-classification-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jpcadena","download_url":"https://codeload.github.com/jpcadena/tweets-classification-backend/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241975844,"owners_count":20051538,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aiofiles","aioredis","async","asyncpg","backend","classification-model","fastapi","gunicorn","jwt-authentication","postgresql","pydantic","python","python-jose","redis","restapi","sql","sqlalchemy","starlette","tweets","uvicorn"],"created_at":"2024-11-15T08:18:34.018Z","updated_at":"2026-04-13T00:15:43.661Z","avatar_url":"https://github.com/jpcadena.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tweets-classification-backend\n\n\u003c!-- Improved compatibility of back to top link: See: https://github.com/othneildrew/Best-README-Template/pull/73 --\u003e\n\n\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n\u003c!-- PROJECT SHIELDS --\u003e\n\u003c!--\n*** Markdown \"reference style\" links for readability.\n*** Reference links are enclosed in brackets [ ] instead of parentheses ( ).\n--\u003e\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/othneildrew/Best-README-Template\"\u003e\n    \u003cimg src=\"app/assets/images/logo.png\" alt=\"Logo\" width=\"80\" height=\"80\"\u003e\n  \u003c/a\u003e\n\n\u003ch3 align=\"center\"\u003etweets-classification-backend\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    Backend for Tweets Classification project.\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/jpcadena/tweets-classification-backend\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#built-with\"\u003eBuilt With\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n\n## About the project\n\n[![Project][project-screenshot]](https://example.com)\n\nThis project is the Python backend for the Tweets Classification Machine\nLearning project developed using FastAPI, PostgreSQL and Redis.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n### Built with\n\n- [![Python][Python]][python-url]\n- [![FastAPI][FastAPI]][fastapi-url]\n- [![Pydantic][Pydantic]][pydantic-url]\n- [![Starlette][Starlette]][starlette-url]\n- [![Uvicorn][Uvicorn]][uvicorn-url]\n- [![Gunicorn][Gunicorn]][gunicorn-url]\n- [![PostgreSQL][PostgreSQL]][postgresql-url]\n- [![Redis][Redis]][redis-url]\n- [![jwt][JWT]][jwt-url]\n- [![HTML5][html5]][html5-url]\n- [![Pandas][Pandas]][pandas-url]\n- [![numpy][NumPy]][numpy-url]\n- [![scikit-learn][Scikit-Learn]][scikit-learn-url]\n- [![Pytest][Pytest]][pytest-url]\n- [![DigitalOcean][DigitalOcean]][DigitalOcean-url]\n- [![Nginx][Nginx]][Nginx-url]\n- [![Ruff][ruff]][ruff-url]\n- [![Black][Black]][Black-url]\n- [![MyPy][MyPy]][MyPy-url]\n- [![Pycharm][PyCharm]][Pycharm-url]\n- [![visual-studio-code][visual-studio-code]][visual-studio-code-url]\n- [![Markdown][Markdown]][Markdown-url]\n- [![Swagger][Swagger]][Swagger-url]\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- GETTING STARTED --\u003e\n\n## Getting started\n\n### Prerequisites\n\n- [Python 3.10+][Python-docs]\n\n### Installation\n\n1. Clone the **repository**\n   ```\n   git clone https://github.com/jpcadena/tweets-classification-backend.git\n   ```\n2. Change the directory to **root project**\n   ```\n   cd tweets-classification-backend\n   ```\n3. Create a **virtual environment** _venv_\n   ```\n   python -m venv venv\n   ```\n4. Activate **environment** in Windows\n   ```\n   .\\venv\\Scripts\\activate\n   ```\n5. Install requirements with PIP\n   ```\n   pip install -r requirements.txt\n   ```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- USAGE EXAMPLES --\u003e\n\n### Usage\n\n1. If found **sample.env**, rename it to **.env**.\n2. Replace your **credentials** into the _.env_ file.\n3. Execute with console\n   ```\n   uvicorn main:app --reload\n   ```\n4. Visit http://localhost:8000/docs for Swagger UI documentation.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- CONTRIBUTING --\u003e\n\n## Contributing\n\n[![GitHub][GitHub]][GitHub-url]\n\nIf you have a suggestion that would make this better, please fork the repo and\ncreate a pull request.\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\nUse docstrings with **reStructuredText** format by adding triple double quotes\n**\"\"\"** after function definition.\\\nAdd a brief function description, also for the parameters including the return\nvalue and its corresponding data type.\\\nPlease use **linting** to check your code quality\nfollowing [PEP 8](https://peps.python.org/pep-0008/).\\\nCheck documentation\nfor [Visual Studio Code](https://code.visualstudio.com/docs/python/linting#_run-linting)\nor [Jetbrains Pycharm](https://github.com/leinardi/pylint-pycharm/blob/master/README.md).\\\nRecommended plugin for\nautocompletion: [Tabnine](https://www.tabnine.com/install)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- LICENSE --\u003e\n\n## License\n\nDistributed under the MIT License.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- CONTACT --\u003e\n\n## Contact\n\n- [![LinkedIn][LinkedIn]][linkedin-url]\n\n- [![Outlook][Outlook]](mailto:jpcadena@espol.edu.ec?subject=[GitHub]tweets-classification-backend)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n\n[LinkedIn]: https://img.shields.io/badge/linkedin-%230077B5.svg?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white\n[linkedin-url]: https://linkedin.com/in/juanpablocadenaaguilar\n[Outlook]: https://img.shields.io/badge/Microsoft_Outlook-0078D4?style=for-the-badge\u0026logo=microsoft-outlook\u0026logoColor=white\n[project-screenshot]: app/assets/images/project.png\n[Python-docs]: https://docs.python.org/3.10/\n[Python]: https://img.shields.io/badge/python-3670A0?style=for-the-badge\u0026logo=python\u0026logoColor=ffdd54\n[FastAPI]: https://img.shields.io/badge/FastAPI-FFFFFF?style=for-the-badge\u0026logo=fastapi\n[Pydantic]: https://img.shields.io/badge/Pydantic-FF43A1?style=for-the-badge\u0026logo=pydantic\u0026logoColor=white\n[Starlette]: https://img.shields.io/badge/Starlette-392939?style=for-the-badge\u0026logo=starlette\u0026logoColor=white\n[Uvicorn]: https://img.shields.io/badge/Uvicorn-2A308B?style=for-the-badge\u0026logo=uvicorn\u0026logoColor=white\n[Gunicorn]: https://img.shields.io/badge/Gunicorn-489846?style=for-the-badge\u0026logo=gunicorn\u0026logoColor=white\n[Pylint]: https://img.shields.io/badge/linting-pylint-yellowgreen\n[Pytest]: https://img.shields.io/badge/Pytest-0A9EDC?style=for-the-badge\u0026logo=pytest\u0026logoColor=white\n[Redis]: https://img.shields.io/badge/Redis-DC382D?style=for-the-badge\u0026logo=redis\u0026logoColor=white\n[PostgreSQL]: https://img.shields.io/badge/PostgreSQL-336791?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white\n[Pandas]: https://img.shields.io/badge/pandas-%23150458.svg?style=for-the-badge\u0026logo=pandas\u0026logoColor=white\n[NumPy]: https://img.shields.io/badge/numpy-%23013243.svg?style=for-the-badge\u0026logo=numpy\u0026logoColor=white\n[Scikit-Learn]: https://img.shields.io/badge/scikit--learn-%23F7931E.svg?style=for-the-badge\u0026logo=scikit-learn\u0026logoColor=white\n[html5]: https://img.shields.io/badge/HTML5-E34F26?style=for-the-badge\u0026logo=html5\u0026logoColor=white\n[JWT]: https://img.shields.io/badge/JWT-black?style=for-the-badge\u0026logo=JSON%20web%20tokens\n[DigitalOcean]: https://img.shields.io/badge/DigitalOcean-0080FF?style=for-the-badge\u0026logo=digitalocean\u0026logoColor=white\n[PyCharm]: https://img.shields.io/badge/PyCharm-21D789?style=for-the-badge\u0026logo=pycharm\u0026logoColor=white\n[Nginx]: https://img.shields.io/badge/Nginx-009639?style=for-the-badge\u0026logo=nginx\u0026logoColor=white\n[Markdown]: https://img.shields.io/badge/Markdown-000000?style=for-the-badge\u0026logo=markdown\u0026logoColor=white\n[Swagger]: https://img.shields.io/badge/-Swagger-%23Clojure?style=for-the-badge\u0026logo=swagger\u0026logoColor=white\n[visual-studio-code]: https://img.shields.io/badge/Visual_Studio_Code-007ACC?style=for-the-badge\u0026logo=visual-studio-code\u0026logoColor=white\n[python-url]: https://www.python.org/\n[fastapi-url]: https://fastapi.tiangolo.com\n[pydantic-url]: https://docs.pydantic.dev\n[starlette-url]: https://www.starlette.io/\n[uvicorn-url]: https://www.uvicorn.org/\n[gunicorn-url]: https://gunicorn.org/\n[pylint-url]: https://www.pylint.org/\n[pytest-url]: https://docs.pytest.org/en/7.2.x/\n[redis-url]: https://redis.io/\n[postgresql-url]: https://www.postgresql.org/\n[pandas-url]: https://pandas.pydata.org/docs/\n[numpy-url]: https://numpy.org/\n[scikit-learn-url]: https://scikit-learn.org/stable/\n\n[html5-url]: https://developer.mozilla.org/en-US/docs/Glossary/HTML5\n\n[jwt-url]: https://jwt.io/\n\n[DigitalOcean-url]: https://www.digitalocean.com/\n\n[Pycharm-url]: https://www.jetbrains.com/pycharm/\n\n[Nginx-url]: https://www.nginx.com/\n\n[Markdown-url]: https://daringfireball.net/projects/markdown/\n\n[Swagger-url]: https://swagger.io/\n\n[visual-studio-code-url]: https://code.visualstudio.com/\n\n[GitHub]: https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge\u0026logo=github\u0026logoColor=white\n\n[GitHub-url]: https://github.com/jpcadena/tweets-classification-backend\n\n[ruff]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json\n\n[ruff-url]: https://beta.ruff.rs/docs/\n\n[Black]: https://img.shields.io/badge/code%20style-black-000000.svg?style=for-the-badge\u0026logo=appveyor\n\n[Black-url]: https://github.com/psf/black\n\n[MyPy]: https://img.shields.io/badge/mypy-checked-2A6DB2.svg?style=for-the-badge\u0026logo=appveyor\n\n[MyPy-url]: http://mypy-lang.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjpcadena%2Ftweets-classification-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjpcadena%2Ftweets-classification-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjpcadena%2Ftweets-classification-backend/lists"}