{"id":20106799,"url":"https://github.com/nneji123/wordsai","last_synced_at":"2025-05-06T09:32:08.626Z","repository":{"id":51414173,"uuid":"519726879","full_name":"Nneji123/WordsAI","owner":"Nneji123","description":"A collection of NLP Applications built using FastAPI, HTML, CSS, and Streamlit.","archived":false,"fork":false,"pushed_at":"2023-05-23T04:34:50.000Z","size":2019,"stargazers_count":7,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-04T21:57:11.223Z","etag":null,"topics":["chatbot","docker","docker-compose","fastapi","git","githubactions","gitpod","heroku-deployment","nlp-machine-learning","optical-character-recognition","resumeparser","sentiment-analysis","speech-recognition","speech-to-text","testing","text","textsumarizer","translation"],"latest_commit_sha":null,"homepage":"https://wordsai-app.herokuapp.com/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Nneji123.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-07-31T09:05:14.000Z","updated_at":"2023-05-16T14:43:44.000Z","dependencies_parsed_at":"2023-01-23T08:30:08.185Z","dependency_job_id":null,"html_url":"https://github.com/Nneji123/WordsAI","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/Nneji123%2FWordsAI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nneji123%2FWordsAI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nneji123%2FWordsAI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nneji123%2FWordsAI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nneji123","download_url":"https://codeload.github.com/Nneji123/WordsAI/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252657335,"owners_count":21783801,"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":["chatbot","docker","docker-compose","fastapi","git","githubactions","gitpod","heroku-deployment","nlp-machine-learning","optical-character-recognition","resumeparser","sentiment-analysis","speech-recognition","speech-to-text","testing","text","textsumarizer","translation"],"created_at":"2024-11-13T17:54:47.296Z","updated_at":"2025-05-06T09:32:07.132Z","avatar_url":"https://github.com/Nneji123.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg width=\"300\" height=\"300\" src=\"https://user-images.githubusercontent.com/101701760/182023528-7da7205e-1fc6-49c9-832d-b3f40a68eae8.png\"\u003e\n\u003c/p\u003e\n\n\n[![Language](https://img.shields.io/badge/Python-darkblue.svg?style=flat\u0026logo=python\u0026logoColor=white)](https://www.python.org)\n[![HTML](https://img.shields.io/badge/HTML-black.svg?style=flat\u0026logo=html5\u0026logoColor=white)](http://wordsai-app.herokuapp.com)\n[![CSS](https://img.shields.io/badge/CSS-yellow.svg?style=flat\u0026logo=css3\u0026logoColor=white)](http://wordsai-app.herokuapp.com)\n[![Framework](https://img.shields.io/badge/FastAPI-darkgreen.svg?style=flat\u0026logo=fastapi\u0026logoColor=white)](https://wordsai-api.herokuapp.com/docs)\n[![Framework](https://img.shields.io/badge/Streamlit-darkred.svg?style=flat\u0026logo=streamlit\u0026logoColor=white)](https://share.streamlit.io/nneji123/lung-cancer-prediction/main)\n![hosted](https://img.shields.io/badge/Heroku-430098?style=flat\u0026logo=heroku\u0026logoColor=white)\n![Docker](https://img.shields.io/badge/Docker-blue?style=flat\u0026logo=docker\u0026logoColor=white)\n[![Gitpod](https://img.shields.io/badge/Gitpod-orange?style=flat\u0026logo=gitpod\u0026logoColor=white)](https://gitpod.io/#https://github.com/Nneji123/WordsAI)\n![reposize](https://img.shields.io/github/repo-size/Nneji123/WordsAI)\n[![Deploy](https://github.com/Nneji123/WordsAI/actions/workflows/deploy.yml/badge.svg)](https://github.com/Nneji123/WordsAI/actions/workflows/deploy.yml)\n[![CodeQL](https://github.com/Nneji123/WordsAI/actions/workflows/codeql.yml/badge.svg)](https://github.com/Nneji123/WordsAI/actions/workflows/codeql.yml)\n[![tests](https://github.com/Nneji123/WordsAI/actions/workflows/python-app.yml/badge.svg)](https://github.com/Nneji123/WordsAI/actions/workflows/python-app.yml)\n\n\n## About\n\u003eWordsAI is a collection of NLP/text and audio based applications served as APIs using the FastAPI framework. \n\nHTML Web App: http://wordsai-app.herokuapp.com\n\nAPI Documentation: http://wordsai-api.herokuapp.com\n\nStreamlit App: https://nneji123-wordsai-streamlithome-x32anq.streamlitapp.com/\n\n\n## Table of Contents\n  * [About](#about)\n  * [Table of Contents](#table-of-contents)\n    + [Features](#features)\n  * [Repository File Structure](#repository-file-structure)\n  * [Demo](#demo)\n    + [API Demo](#api-demo)\n    + [HTML App Demo](#html-app-demo)\n    + [Streamlit App Demo](#streamlit-app-demo)\n  * [How to run the Application](#how-to-run-the-application)\n  * [Tests](#tests)\n  * [Deployment](#deployment)\n- [Todo](#todo)\n- [License](#license)\n\n### Features\n- Speech Recognition\n- Auto Correct\n- Machine Translation across multiple languages\n- Resume Parser\n- Text Summarizer\n- Webpage Summarizer\n- Sentiment Analyzer\n- Optical Character Recognition or OCR(extract text from images)\n- Named Entity Recognizer\n- Chatbot\n- Wordcloud Generator\n\n\n\n## Repository File Structure\n```bash\n├───.github\n│   └───workflows #Github Actions\n├───api           #FastAPI Application\n│   ├───images\n│   ├───temp\n│   └───train_bot\n├───src           #HTML Web Application\n│   ├───images\n│   ├───temp\n│   ├───templates\n│   │   └───assets\n│   └───__pycache__\n├───streamlit     #Streamlit Application\n│   ├───functions\n│   ├───images\n│   ├───pages\n│   └───temp\n└───tests         #Tests\n```\n\n## Demo\n### API Demo\n### HTML App Demo\n### Streamlit App Demo\n\n## How to run the Application\n\u003cdetails\u003e \n  \u003csummary\u003e\u003cb\u003eRunning on Local Machine\u003c/b\u003e\u003c/summary\u003e\n\n**To run the application on your local system do the following:**\n1. Clone the repository:\n```bash\ngit clone https://github.com/Nneji123/WordsAI.git\n```\n\n2. Change the directory:\n```\ncd WordsAI\n```\n\n3. Install the requirements:\n```\npip install -r requirements.txt\n```\n\n4. Run the application\n```\nuvicorn app:app --reload --port 8000\n```\n**You should be able to view the application by going to http://127.0.0.1:8000/**\n\u003c/details\u003e\n\n\u003cdetails\u003e \n  \u003csummary\u003e\u003cb\u003eRunning on Local Machine with Docker Compose\u003c/b\u003e\u003c/summary\u003e\n\n**You can also run the application in a docker container using docker compose(if you have it installed)**\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/Nneji123/WordsAI.git\n```\n\n2. Change the directory:\n```\ncd WordsAI\n```\n\n3. Run the docker compose command\n```docker\ndocker compose up -d --build \n```\nYou should be able to view the application by going to http://localhost:8000/\n\u003c/details\u003e\n\n\n\u003cdetails\u003e \n  \u003csummary\u003e\u003cb\u003eRunning in a Gitpod Cloud Environment\u003c/b\u003e\u003c/summary\u003e\n\n\n**Click the button below to start a new development environment:**\n\n[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/Nneji123/WordsAI)\n\u003c/details\u003e\n\n## Tests\n\u003cdetails\u003e \n  \u003csummary\u003e\u003cb\u003eTest HTML Web App Functions\u003c/b\u003e\u003c/summary\u003e\n\nTo test the HTML Web app do the following:\n1. Clone the repository:\n```\ngit clone https://github.com/Nneji123/WordsAI.git\n```\n2. Change the working directory and install the requirements and pytest:\n```\ncd src \u0026\u0026 pip install -r requirements.txt \u0026\u0026 pip install pytest\n```\n3. Move to the tests folder and run the tests\n```\ncd .. \u0026\u0026 cd tests \u0026\u0026 pytest\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e \n  \u003csummary\u003e\u003cb\u003eTest API\u003c/b\u003e\u003c/summary\u003e\n\nTo test the API functions do the following:\n1. Clone the repository:\n```\ngit clone https://github.com/Nneji123/WordsAI.git\n```\n2. Change the working directory and install the requirements and pytest:\n```\ncd api \u0026\u0026 pip install -r requirements.txt \u0026\u0026 pip install pytest\n```\n3. Move to the tests folder and run the tests\n```\ncd .. \u0026\u0026 cd tests \u0026\u0026 pytest\n```\n\u003c/details\u003e\n\n## Deployment\n\n\u003cdetails\u003e \n  \u003csummary\u003e\u003cb\u003eDeploying the Application to Heroku\u003c/b\u003e\u003c/summary\u003e\n\n**Assuming you have git and heroku cli installed just carry out the following steps:**\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/Nneji123/WordsAI.git\n```\n\n2. Change the directory:\n```\ncd WordsAI\n```\n\n3. Login to Heroku\n\n``` \nheroku login\nheroku container:login\n```\n\n4. Create your application\n```\nheroku create your-app-name\n```\nReplace **your-app-name** with the name of your choosing.\n\n5. Build the image and push to Container Registry:\n\n```\nheroku container:push web\n```\n\n6. Then release the image to your app:\n \n```\nheroku container:release web\n```\n\nClick the button below to deploy the application.\n\n[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy)\n\n\n\n\u003c/details\u003e\n\n\u003cdetails\u003e \n  \u003csummary\u003e\u003cb\u003eHow to deploy the application on AWS EC2 using a Bash Script\u003c/b\u003e\u003c/summary\u003e\n\n**1. Fork this repository**\n\n**2. Login to AWS, create a new AWS EC2 instance and make sure to allow outside traffic as shown in the screenshots below:**\n\n\u003cimg src=\"https://user-images.githubusercontent.com/101701760/178163392-3c9fc8ec-e58a-420d-a6bb-2885215d8105.png\" width=\"1200\" height=\"400\"\u003e\n\n\n\u003cimg src=\"https://user-images.githubusercontent.com/101701760/178163373-e4bb2c92-0f47-4a22-9556-dfc470fd7e8a.png\" width=\"1200\" height=\"400\"\u003e\n\n\n**3. When the instance has been launched, copy the Public IP address of your instance and paste it in the 'fastapi_setup' file of your cloned repository as shown below**\n\n\u003cimg src=\"https://user-images.githubusercontent.com/101701760/178163457-2e156379-b542-4d24-aebf-e202dd44ae2c.png\" width=\"1200\" height=\"400\"\u003e\n\n\u003cimg src=\"https://user-images.githubusercontent.com/101701760/178163536-918818ee-563d-4b0d-a5ec-5c265a75b2b4.png\" width=\"1200\" height=\"400\"\u003e\n\n\n**4. Connect to your instance and clone your forked repository, an example in my case:**\n```bash\ngit clone https://github.com/Nneji123/WordsAI.git\n```\n**5. cd into your repository which is probably named 'WordsAI'. You can do that by running:**\n```bash\ncd WordsAI \n```\n**6. Then run the setup.sh file to get your application up and running:**\n```bash\nchmod u+x aws.sh\n./aws.sh\n```\n**You can then view the application by going to your Public IP's location, an example in my case will be:\nhttp://3.95.202.74:80/docs**\n\n**You can also watch this video for a more in depth explanation on how to deploy a FastAPI application on AWS EC2:**\n[![How to deploy FastAPI on AWS](https://youtube-md.vercel.app/SgSnz7kW-Ko/640/360)](https://www.youtube.com/watch?v=SgSnz7kW-Ko)\n\u003c/details\u003e\n\n# Todo\n- [x] Add a frontend interface for the APIs with streamlit and html, css , javascript\n- [ ] Add more interesting features like; title generator and song finder, text2speech, pdf text extractor, spam detection etc\n- [x] Add functional chatbot\n- [x] Add wordsai discord bot\n- [x] update tests\n\n\n# License\n[Apache](https://github.com/Nneji123/WordsAI/LICENSE.md)\n\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnneji123%2Fwordsai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnneji123%2Fwordsai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnneji123%2Fwordsai/lists"}