Skip to content

jharlan-hash/gospell

Repository files navigation

GoSpell

GoSpell is a terminal-based spelling practice application that uses text-to-speech to help users improve their spelling skills

GoSpell Demo Go Report Card License

Overview

GoSpell is an interactive CLI spelling practice tool that:

  • Speaks words aloud using Google Cloud Text-to-Speech
  • Provides word definitions to help with context
  • Tracks your correct spelling streak
  • Creates a satisfying practice environment with a clean TUI

I think it would be great for students, language learners, or anyone that wants to improve their spelling skills.

Features

  • Text-to-Speech Integration: Hear words spoken (mostly) clearly with Google Cloud TTS
  • Word Definitions: See word definitions to hopefully understand context and meaning
  • Progress Tracking: Keep track of your spelling streak
  • Pretty good TUI: Clean terminal user interface using Bubble Tea
  • Word Caching: Caches dictionary lookups between sessions to increase speed over time

Installation

Prerequisites

  • Go 1.17+
  • Google Cloud Platform account with Text-to-Speech API enabled
  • Google Cloud credentials JSON file (Make sure it is a key from a service account on Google Cloud)

Install from source

# Clone the repository
git clone https://github.com/jharlan-hash/gospell.git
cd gospell

# Install dependencies
go mod download

# Build the application
go build -o gospell

# Run the application
./gospell --credentials=/path/to/your-credentials.json

🎮 Usage

# Basic usage
./gospell --credentials=/path/to/your-credentials.json

# Display multiple definitions
./gospell --credentials=/path/to/your-credentials.json --definitions=3

Key Commands

  • Enter: Submit your spelling
  • Ctrl+R: Repeat the current word
  • Ctrl+H: Hear what you've typed so far
  • Ctrl+C/Ctrl+D/Esc: Exit the application

🔧 Configuration

GoSpell accepts the following command-line flags:

Flag Short Description
--credentials -c Path to Google Cloud credentials JSON file (required)
--definitions -d Number of definitions to display (default: 1)
--help -h Display help

Dependencies

Contributing

Feel free to contribute if you want - this is just a personal project.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgements


Made with ❤️ by Jack Sovern

About

CLI spelling test written in Go.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages