{"id":42332507,"url":"https://github.com/trushmi/vocab","last_synced_at":"2026-01-27T13:51:25.151Z","repository":{"id":175747618,"uuid":"653396017","full_name":"trushmi/vocab","owner":"trushmi","description":"📚 Full-stack dictionary web-app with auto word lookup, interactive learning games, and email notifications","archived":false,"fork":false,"pushed_at":"2024-12-05T00:52:37.000Z","size":98,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-05T01:31:21.536Z","etag":null,"topics":["api","flask","javascript","postgresql","python","react","sqlalchemy"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/trushmi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-06-14T01:25:26.000Z","updated_at":"2024-12-05T00:52:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"c9af1207-4823-4bc9-8ed0-456bf5445fb3","html_url":"https://github.com/trushmi/vocab","commit_stats":null,"previous_names":["trushmi/vocab"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/trushmi/vocab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trushmi%2Fvocab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trushmi%2Fvocab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trushmi%2Fvocab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trushmi%2Fvocab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trushmi","download_url":"https://codeload.github.com/trushmi/vocab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trushmi%2Fvocab/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28814237,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T12:25:15.069Z","status":"ssl_error","status_checked_at":"2026-01-27T12:25:05.297Z","response_time":168,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["api","flask","javascript","postgresql","python","react","sqlalchemy"],"created_at":"2026-01-27T13:51:22.831Z","updated_at":"2026-01-27T13:51:25.138Z","avatar_url":"https://github.com/trushmi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# In this ReadMe:\n- [About this project](#about-this-project)\n- [Tech stack](#tech-stack)\n- [Features](#features)\n- [Code samples](#code-samples)\n- [How to use the app](#how-to-use-the-app)\n- [How to run the app](#how-to-run-the-app)\n\n# About this project \n\nVOCAB is a language learning application that enables users to look up and record new words, making the learning process 1.77 times quicker. It supports two languages and offers multiple dashboards for organizing words related to specific topics. \n\nApp includes interactive features to help users practice and memorize new vocabulary. It also allows users to set up daily email reminders to practice.\n![Screenshot of two pages of the app: sign in and dashboards page displayed on one slide](https://github.com/user-attachments/assets/a960fe96-fa66-4850-8aea-8029b78ece20)\n\n# Tech Stack\n\n### Frontend:\n- HTML\n- CSS\n- JavaScript\n- ReactJS\n\n### Backend:\n- Python\n- Flask\n- Jinja\n- SQLAlchemy\n\n### Database:\n- PostgreSQL\n  \n### API:\n- [Free Dictionary API](https://dictionaryapi.dev/)\n- [Merriam-Webster Spanish Dictionary API](https://dictionaryapi.com/products/api-spanish-dictionary)\n\n# Features\n\n- User authentication\n- Daily reminders to practice\n- Flashcards\n- Support 2 languages: English and Spanish\n- Interactive game “Guess the word” by definition\n- Multiple dashboards to keep words organized\n- Generated definition and audio pronunciations for words\n\n# Code samples\nSee the following code samples from this project:\n- [Database model](https://github.com/trushmi/vocab/blob/main/model.py)\n- [Python code](https://github.com/trushmi/vocab/blob/main/server.py)\n- [JavaScript code](https://github.com/trushmi/vocab/blob/main/static/js/dashboard.js)\n- [CSS file](https://github.com/trushmi/vocab/blob/main/static/css/flashcards.css) \n- [Tests](https://github.com/trushmi/vocab/blob/main/test_server.py) \n\n# How to use the app\n### 1. Create an account or log in\n- On the sign-in page, enter your credentials to access the app.\n\n\u003cimg width=\"1726\" alt=\"The sign-in page where users enter their credentials to access the app.\" src=\"https://github.com/trushmi/vocab/assets/88466266/c9a40641-abfc-498d-88fb-66ebf79685db\"\u003e\n\n### 2. Navigate to the dashboards page\n- Once logged in, go to the dashboards page.\n- Click on the option to create a new dashboard, specifying the title and language for your dashboard.\n- See your current list of dashboards.\n\u003cimg width=\"1726\" alt=\"The dashboards page displaying various categories of words organized by topic.\" src=\"https://github.com/trushmi/vocab/assets/88466266/76c67b80-3af2-4201-86de-9ab8b46ec772\"\u003e\n\n### 3. Navigate to the selected dashboard\n- Add words to your dashboard by typing the word in the corresponding field and pressing the \"Generate Meaning\" button to get the description and audio pronunciation of the word. Then, press the \"Add\" button to include it in your dashboard.\n\n\u003cimg width=\"1726\" alt=\"A selected dashboard with fields to search for a word, its meaning, and a button to add the word. Below, a list of saved words is displayed with audio playback functionality.\" src=\"https://github.com/trushmi/vocab/assets/88466266/c39e1528-e431-43e9-a87a-a4ab8612ccaf\"\u003e\n\n### 4. Practice words with flashcards\n- Use the flashcards feature to reinforce your vocabulary.\n\u003cimg width=\"1726\" alt=\"Flashcards page.\" src=\"https://github.com/trushmi/vocab/assets/88466266/7f74bbb0-3dbf-4237-b45d-2d867ad3e64f\"\u003e\n\n### 5. Play the “Guess the Word” game\n- Test your knowledge with the \"Guess the word\" game.\n\u003cimg width=\"1726\" alt=\"Guess the word page.\" src=\"https://github.com/trushmi/vocab/assets/88466266/6a2d7f2d-6a05-49f6-8408-04127fe8cba3\"\u003e\n\n### 6. Set up daily email reminders to practice\n- Navigate to your profile page to configure daily email reminders for practicing vocabulary.\n\u003cimg width=\"1726\" alt=\"Profile page where the user can toggle the button to set up or cancel a daily reminder to practice vocabulary.\" src=\"https://github.com/trushmi/vocab/assets/88466266/7039bba6-a0b6-4aeb-bfd2-42815ab9cc77\"\u003e\n\n\u003cimg width=\"1726\" alt=\"Screenshot of a Gmail inbox where messages to practice vocabulary are displayed\" src=\"https://github.com/trushmi/vocab/assets/88466266/3e5dbe10-8ba3-4d35-b7e8-6b82a6ef2c10\"\u003e\n\n\n# How to run the app  \n\nFollow the next 12 steps to set up and run the app on your local machine: \n  \n  \u003e [!NOTE]\n\u003e  To use the Spanish language in this app, navigate to the [Merriam-Webster Spanish Dictionary API](https://dictionaryapi.com/products/api-spanish-dictionary) and generate your API key. \n\n1. ### Clone the repository to your local machine:\n    ```\n    git clone https://github.com/trushmi/vocab.git\n    ```\n2. ### Navigate to your project directory:\n   ```\n   cd your-project-directory-name\n   ```\n3. ### Setup the virtual environment to manage your project's dependencies separately:\n    ```\n    virtualenv env\n    ```\n4. ### Activate virtual environment:\n    ```\n    source env/bin/activate\n    ```\n\n5. ### Install the project requirements:\n    ```\n    pip3 install -r requirements.txt\n    ```\n6. ###  Create a secrets.sh file in your project directory to store sensitive information\n   ```\n   touch secrets.sh\n   ```\n\n7. ### Include the following environment variables into secrets.sh file:\n    ```\n    export PASSWORD=\"your_password_to_gmail_here\"\n    export EMAIL=”your_email_to_send_reminders_to_user_here”\n    export SPANISHAPIKEY=”your_API_KEY_to_generate_meaning_in_spanish_here”\n    ```\n8. ### Load the environment variables:\n    ```\n    source secrets.sh\n    ```\n9. ### Set up the database:\n   ```\n   createdb \"name_of_database\"\n   ```\n10. ### Set up the database tables:\n    ```\n    python3 model.py\n    ```\n11. ### Run the Application\n    ```\n    python3 server.py\n    ```\n12. ### Open your web browser and navigate to the following address:\n    ```\n    http://localhost:5000/\n    ```\nYou should now see the application running. \nIf you encounter any issues, please check that all previous steps have been followed correctly.\n\n_________________\n\nSee my another [project](https://github.com/trushmi/tv-shows-time) to check how much time you have spent watching TV shows. \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrushmi%2Fvocab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrushmi%2Fvocab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrushmi%2Fvocab/lists"}