{"id":21104949,"url":"https://github.com/lilianboulard/activities","last_synced_at":"2025-03-14T08:44:42.645Z","repository":{"id":39003673,"uuid":"493181341","full_name":"LilianBoulard/activities","owner":"LilianBoulard","description":"M1 NLP project","archived":false,"fork":false,"pushed_at":"2022-08-09T10:17:50.000Z","size":3372,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-21T03:24:01.833Z","etag":null,"topics":["chatbot","machine-learning","nlp","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LilianBoulard.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-05-17T09:24:36.000Z","updated_at":"2024-11-18T14:17:25.000Z","dependencies_parsed_at":"2022-09-10T14:01:57.543Z","dependency_job_id":null,"html_url":"https://github.com/LilianBoulard/activities","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/LilianBoulard%2Factivities","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LilianBoulard%2Factivities/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LilianBoulard%2Factivities/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LilianBoulard%2Factivities/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LilianBoulard","download_url":"https://codeload.github.com/LilianBoulard/activities/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243551230,"owners_count":20309291,"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","machine-learning","nlp","python"],"created_at":"2024-11-20T00:02:26.831Z","updated_at":"2025-03-14T08:44:42.622Z","avatar_url":"https://github.com/LilianBoulard.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ✨ activities\n\nactivities is a search engine for finding activities and events on Paris,\npersonalized with the help of a chatbot.  \n\n## 🚀 Usage\n\nAn online demo will soon be available !\n\n## 🔎 About\n\nFirst year master's degree Natural Language Processing project.\n\nThis project uses\n- 🤖 [spaCy](https://spacy.io/) for the chatbot\n- 🌶 [Flask](https://flask.palletsprojects.com/en/2.1.x/) for both frontend and backend\n- ⚡ an in-memory [Redis](https://redis.io/) database for lightning fast response times\n- 📚 a [MariaDB](https://mariadb.org/) SQL database to store usage data\n- 🐳 [Docker](https://www.docker.com/) and 🦄 [Gunicorn](https://gunicorn.org/) for deployment\n\nMost of it is written in Python, with some JavaScript for the front-end, \nand some HTML / CSS for the web interface's style and structure.\n\n## 🙌 Authors\n\n- [Lilian Boulard](https://github.com/LilianBoulard) - Lead\n- [Adrien Assoun](https://github.com/Arod-11) - NLP \u0026 processes\n- [Jary Vallimamode](https://github.com/JaryV) - NLP\n- [Mohamed Ba Komara](https://github.com/komswaga) - DB \u0026 UI\n- [Paul Jourdin](https://github.com/Paul-JD) - NLP \u0026 UI\n\n## 🤔 How does it work ?\n\nDatasets are pulled from [ParisOpenData](https://opendata.paris.fr/pages/home/)\nand aggregated in a normalized manner. They are then stored in a read-only\nin-memory [Redis](https://redis.io/) database, which has the advantage of \nbeing both lightweight on the system, and extremely fast.\n\nThe search engine for filtering this data depends on the interaction between\nthe user and our home-brewed chatbot 🤖.  \nThis choice of user interface aims at shaping a friendlier and \nmore comfortable interaction compared to old-fashioned forms.\n\n## 🛠 Design\n\nDevelopment is centered around [Flask](https://flask.palletsprojects.com/en/2.1.x/), \nwhich is the web application framework we use.  \nA [Redis](https://redis.io/) database is used to store the datasets, \nand a [MariaDB](https://mariadb.org/) database to record app usage.  \nThe chatbot is powered by [spaCy](https://spacy.io/) magic ✨\n\n### 🤔 Design choices\n\n#### Why Redis ?\n\nDatasets wrote in Redis at runtime are afterwards read-only, \ntherefore we don't care about the ACID properties of the database.  \nFurthermore, Redis is known to be extremely fast, which is a plus !\n\n#### Why spaCy ?\n\nspaCy provides pretrained French pipelines, which avoids us doing the tedious\ntraining part 😄  \nWe tried using [Rasa](https://rasa.com/open-source/) and \n[🤗 CamemBERT](https://huggingface.co/Jean-Baptiste/camembert-ner-with-dates)\nbut in the end it didn't fit our processes and what we wanted to do !\n\n#### Why Docker ?\n\n'cause deploying an entire service with essentially one command is cool 😎  \n*(and other techy reasons, but [who cares about that](docker/README.md) 😴)*\n\n## 🔌 Self-host\n\n### 🐳 Docker\n\nThe simplest (and currently only) way to run this project is to use \n[Docker](https://www.docker.com/), and more specifically, \n[docker-compose](https://docs.docker.com/compose/).\n\nTo do that, install both, then clone the repo with\n\n```commandline\ngit clone https://github.com/LilianBoulard/activities\n```\n\n`cd` into it, and run\n\n```commandline\npython docker/generate_passwords.py\nsudo docker-compose up -d\n```\n\nand you should be good to go !\n\nIf you need more information on this process, check out [our documentation](docker/README.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flilianboulard%2Factivities","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flilianboulard%2Factivities","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flilianboulard%2Factivities/lists"}