Skip to content

Latest commit

 

History

History
216 lines (147 loc) · 6.14 KB

README.md

File metadata and controls

216 lines (147 loc) · 6.14 KB

Support me here if you liked this! "Buy Me A Coffee"

About VocabCLI 📚

image

VocabularyCLI is a lightweight Command Line Interface that allows users to look up word definitions, examples, synonyms and antonyms directly via the command line. Powered with several utility based commands our CLI offers rapid and robust Knowledge Base capabilities like Flashcards, Tagging, Word Management, Graph Reporting, Bulk import and export of word lists and is a definitive software for linguaphiles.

This application boasts a simple and intuitive interface that is easy to use and is a must have for anyone who wants to expand their vocabulary and improve their language skills. The app also offers advanced Text Classification and Processing via the use of Natural Language Processing and Machine Learning algorithms which will be discussed in detail in the "Scope and Features" section.

The CLI will be offered with eye-catching Panels, Tables, Animated Symbols, Emojis, Interactive Menus, Spinners, Colored fonts and other rich features that will make the user experience more enjoyable and interactive. The CLI will also be offered with a comprehensive User Manual and a detailed Documentation that will help users get started with the CLI and use it to its full potential.


Installation 📥

Official package release coming soon. Stay tuned! 🚧



Developed Using 🛠

  • Primary Development Language: Python 3.10
  • Database Management System: SQLite3
  • API: DictionaryAPI (https://api.dictionaryapi.dev/api/v2/entries/en/hello)
  • Deployment: PyPi (Python Package Index)
  • Libraries: Rich, Typer, Matplotlib, Seaborn, NLTK, SpaCy, Pandas, Numpy, Requests, Beautiful Soup, PyDictionary
  • Testing: PyTest (Unit Testing), PyTest-Cov (Code Coverage), PyTest-Benchmark (Benchmarking)
  • Documentation: Sphinx, ReadTheDocs

Features 🎯

  • Look up word definitions, examples, homonyms, synonyms and antonyms
  • Generate flashcards for words
  • Tag words, set words as favorites, set words as learning, set words as mastered
  • Generate Graph Reports
  • Import and Export word lists in PDF and CSV formats
  • Show word lookup history and word lookup statistics
  • Perform Text Classification and Processing and Summarize Web Articles
  • Delete words from the database and clear attributes associated with the words
  • Revise words and ready-made word collections
  • Quiz Mode
  • TTS (Text to Speech) Mode and Accessibility Mode
  • Paraphrase Text and Generate Word Clouds
  • Detect Plagiarism and Generate Similarity Scores
  • Determine Readability Index and Filter out offensive words
  • Generate Word Frequency Distributions
  • Save User Quotes and Provide Quotes of the Day
  • Determine Word Sentiment and Generate Sentiment Analysis Reports
  • More to follow...

Screenshots 📸

snap1

snap2

snap3

snap4

snap5


Getting Started 🚀

For Development 👇🏻

# Make a Virtual environment
python3 -m venv my_env

# Activate the virtual environment
my_env\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Freeze the requirements
pip freeze > requirements.txt

Running the Application 👇🏻

# Move to source folder
cd vocabCLI

# Run the main project file
python -m VocabularyCLI --help

Run Tests 👇🏻

# Move to source folder
cd vocabCLI

# Run all tests
python -m pytest ../tests

# Run specific tests
python -m pytest -k "ClassName" ../tests 

Generating Documentation 📚

# run the following command in the root directory to update the docs
sphinx-apidoc -o docs .

# move to docs folder
cd docs

# Edit the conf.py file to index modules

# generate html docs
make html

Generating PyTest Coverage Report 📊

# Move to source folder
cd vocabCLI

# Run the coverage command
coverage run -m pytest ..\tests

# Generate the coverage report
coverage html

# Open the index.html file in the htmlcov folder to view the report

Generating User Manual 📖

# NOTE: Always use the Linux Subsystem for Windows to generate the user manual. 

# Ensure tpyer-cli is installed
pip3 install typer-cli

# Move to source folder
cd vocabCLI

# Generate the user manual in command line 
typer VocabularyCLI.py utils docs

# To generate the docs the rich help text must be commented out in the main file (VocabularyCLI.py) and the modules.* imports must also be commented out. Use the Regex in Notes.md to comment out the rich help text.

# Write the user manual to a file
typer VocabularyCLI.py utils docs --name "VocabularyCLI" --output "../docs/user_manual.md"

Get Code Stats 📊

# Move to source folder
cd vocabCLI
 
# install pygount
pip3 install pygount

# Run the following command to get the code stats
pygount --suffix=py --format=summary

Format Code and Sort Imports 📝

isort .
black .

Contributors ✨

Thanks goes to these wonderful people:


License 📜

This project follows the MIT License Copyright (c) 2021 Atharva Shah, Anay Deshpande