GithubHelp home page GithubHelp logo

h1ckstead / spellingtrainer Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 13.53 MB

Application for spelling practice

Home Page: https://spellingtrainer.wixsite.com/download

Python 100.00%
education ielts ielts-learning ielts-writing spelling

spellingtrainer's People

Contributors

h1ckstead avatar

Watchers

 avatar

spellingtrainer's Issues

Choose macOS voices

mac M2 13
Albert
Bad
Bahh
Bells
Boing
Bubbles
Cellos
Daniel
Wobble
Eddy
Eddy
Flo
Flo
Fred
Good
Grandma
Grandma
Grandpa
Grandpa
Jester
Junior
Karen
Kathy
Moira
Organ
Superstar
Ralph
Reed
Reed
Rishi
Rocko
Rocko
Samantha
Sandy
Sandy
Shelley
Shelley
Tessa
Trinoids
Whisper
Zarvox

mac Intel 13
Albert
Bad
Bahh
Bells
Boing
Bubbles
Cellos
Daniel
Wobble
Eddy
Eddy
Flo
Flo
Fred
Good
Grandma
Grandma
Grandpa
Grandpa
Jester
Junior
Karen
Kathy
Moira
Organ
Superstar
Ralph
Reed
Reed
Rishi
Rocko
Rocko
Samantha
Sandy
Sandy
Shelley
Shelley
Tessa
Trinoids
Whisper
Zarvox

monterey
Alex
Alice
Alva
Amelie
Anna
Carmit
Damayanti
Daniel
Diego
Ellen
Fiona
Fred
Ioanna
Jorge
Juan
Kanya
Karen
Kyoko
Laura
Lekha
Luca
Luciana
Maged
Mariska
Mei-Jia
Melina
Milena
Moira
Monica
Nora
Paulina
Rishi
Samantha
Sara
Satu
Sin-ji
Tessa
Thomas
Ting-Ting
Veena
Victoria
Xander
Yelda
Yuna
Yuri
Zosia
Zuzana

Add validation to word adding with alt spelling

When the user tries to manually add a new word with alt spelling check that the words are actually different, if not show a message saying something along the lines of "Make sure British and American spellings are different".

Format bug report message for the user

import webbrowser

# Specify the email address
email_address = "[email protected]"

# Specify the subject
subject = "Feedback for Spelling Trainer"

# Specify the message body with the title and app version
title = "Spelling Trainer Feedback"
app_version = "1.0.0"
body = f"Hello,\n\nI wanted to provide feedback for the Spelling Trainer app.\n\nTitle: {title}\nApp Version: {app_version}\n\n[Your feedback here]"

# Generate the mailto URL with the email address, subject, and message body
mailto_url = f"mailto:{email_address}?subject={subject}&body={body}"

# Open the default email client with the pre-filled message
webbrowser.open(mailto_url)

Design dark and light themes

Guide on dark theme design: https://compilezero.medium.com/dark-mode-ui-design-the-definitive-guide-part-1-color-53dcfaea5129

Current color scheme

Mainframe: #333333
Blocks: #2b2b2b, border: #292929
CTA buttons: #246ba3, hover: #17496f, disabled: #565b5e
Buttons: #333333, hover: #212121
Text: #dce4ee
Line: #aab0b5
Avatar selection: #ffffff

User stats:
Attempts: #3c9fea
Correctly: #29a589
Learned words: #105728
To learn: #f8c543
Incorrectly #ec4939

Validation labels:
Correct: #0a5826
Incorrect: #ef4831

Create icons

Here are some commonly used specifications for the specified icon sizes:

  1. 16x16: This size is commonly used for icons displayed in the taskbar, window title bars, or file/folder icons. The specifications for a 16x16 icon are typically:
  • File format: .ico
  • Color depth: 8-bit (256 colors) or 32-bit (with alpha channel)
  • DPI (dots per inch): Usually 96 DPI, but DPI is less relevant for such small sizes.
  1. 32x32: This size is commonly used for icons displayed on the desktop or in file explorers. The specifications for a 32x32 icon are typically:
  • File format: .ico
  • Color depth: 8-bit (256 colors) or 32-bit (with alpha channel)
  • DPI: Usually 96 DPI, but DPI is less relevant for such small sizes.
  1. 48x48: This size is commonly used for icons displayed in application menus, taskbars, or as larger icons in file explorers. The specifications for a 48x48 icon are typically:
  • File format: .ico
  • Color depth: 8-bit (256 colors) or 32-bit (with alpha channel)
  • DPI: Usually 96 DPI, but DPI is less relevant for such small sizes.
  1. 256x256: This size is commonly used for high-resolution icons displayed on modern operating systems, supporting high-DPI screens. The specifications for a 256x256 icon are typically:
  • File format: .ico
  • Color depth: 32-bit (with alpha channel)
  • DPI: Usually 96 DPI, but DPI is less relevant for such small sizes.

Add strict spelling logic

Some words have different spelling in AmE and BrE, user should have the ability to control whether this is counted in by the app.
Make a setting "strict_spelling", if checked only one version of the spelling will be counted as correct. Practice page will show which variation it is expecting. If unchecked (default), both spellings will count as correct.
Counter "times_to_spell" is shared between both variants

Create manual word adding functionality

User must have the ability to manually add words to his vocabulary for practice

  1. Check user spelled the word correctly (use pyspellchecker?)
  2. Check if the word is in any existing dictionaries
  • Pop the word from the dictionary and add it to vocabulary
  • Add it to vocabulary (with empty description?)
    Additionally: If the word already exists in vocabulary show the corresponding alert. If the word is in "learned_words" dict, pop it from there and put into vocabulary

Words to delete

physic
ethernet
diarrhea
chris
elephentisis
cleats
diphtheria
capstan
clinton
cosal
madrid
Voluptuous

Acdbentity
Admin
Adware
Against
Alot
Although
Ambien
Among
Amongst
Ampland
Antivirus
Antonio
Anybody
Anyone
Anything
Anytime
Apps
Barnes
Barry
Basename
Because
Bedford
Beside
Bloomberg
Bluetooth
Bool
Brian
Bufing
Carb
Changelog
Charlie
Chris
Citysearch
Claire
Conferencing
Config
Could
Cyber
Dealtime
Downloadable
During
Ebook
Electro
Else
Endif
Eval
Everybody
Everyone
Everything
Expansys
Findlaw
Flickr
From
Frontpage
Gamespot
Gmbh
Goto
Gotta
Gratuit
Groundwater
Guestbook
Herself
Himself
Holdem
Houseware
Housewive
Inbox
Intel
Into
Invision
Itself
Keyword
Lightbox
Listprice
Login
Mastercard
Meetup
Meta
Metallica
Minolta
Monica
Motherboard
Motorola
Multi
Myself
Nano
Nintendo
Offline
Onto
Ought
Ourselves
Packard
Plugin
Postposted
Preston
Prix
Propecia
Pubmed
Rehab
Remix
Reseller
Ringtone
Runtime
Screensaver
Screenshot
Should
Signup
Since
Slideshow
Something
Stan
Struct
Sublimedirectory
Symantec
Than
That
Thats
Their
Them
Themselves
These
They
This
Those
Titten
Toolbar
Toolkit
Toward
Trackback
Trembl
Turbo
Twiki
Unless
Unsubscribe
Unto
Upon
Versus
Wanna
What
When
Whenever
Where
Whereas
Which
Whilst
Whom
Whose
Widescreen
Wikipedia
Winston
Wishlist
With
Without
Womens
Wordpress
Worldcat
Would
Your
Yours
Yourself

MacOS UI Bugs

Tooltips don't work
White background on tkinter Labels
Incorrect avatar size on vocabulary page

Create Readme

macOS build:
pyinstaller -n "Spelling Trainer" -F --add-data "/Users/victorialazareva/PycharmProjects/SpellingTrainer/app/assets:assets" --add-data "/Users/victorialazareva/PycharmProjects/SpellingTrainer/venv/lib/python3.11/site-packages/spellchecker/resources/en.json.gz:spellchecker/resources" --collect-all customtkinter --collect-all RandomWords --icon "/Users/victorialazareva/PycharmProjects/SpellingTrainer/app/assets/favicon.icns" main.py

Ellipsize strings that are too long

Text in some Labels can be too long and needs to be eclipsed and full text displayed in a tooltip:

  • In the Session History block on Practice Page "correction_label" (now it is cut at 50 chars [:50])
  • In the Vocabulary section on Vocabulary Page (now long words push the [Next] button and "Times to spell" label to the right)

Example without tooltip:
`import tkinter as tk

def truncate_text(text, max_length):
if len(text) > max_length:
truncated_text = text[:max_length-3] + "..."
else:
truncated_text = text
return truncated_text

root = tk.Tk()

root.columnconfigure(0, minsize=200)
root.columnconfigure(1, minsize=200)
root.rowconfigure(0, minsize=50)

label_text = "This is a long label that should be truncated if it exceeds the available space"
max_label_length = 25
truncated_label_text = truncate_text(label_text, max_label_length)

label = tk.Label(root, text=truncated_label_text, wraplength=180, anchor="w")
label.grid(row=0, column=0, sticky="w")

root.mainloop()`

Create new assets

List of assets needed and their specifications (colors are current and are subject to change):

Size is current actual size in the widgets, size in parenthesis is minimal required resolution for adequate scaling
#dce4ee

  • learn.png 20x20 (40x40)
  • play.png 30x30 (60x60)
  • new_user.png 15x15 (30x30)

#abb0b6

  • idea.png 15x15 (30x30)
  • bug.png 10x10 (20x20)
  • pencil.png 20x20 (40x40)
  • edit.png 15x15 (30x30)
  • info.png 10x10(20x20)
  • prev.png
  • next.png

#6bbe66

  • correct.png 15x15 (30x30)

#ff4141

  • incorrect.png 15x15 (30x30)

#f8c543

  • attention.png

Update definitions in word dicts

grep words without definitions, populate manually

Investigate the bug where definition is truncated:
{'Hostility': {'definition': {'Noun': ['a hostile (very unfriendly'

TO DELETE:
Bradley
Ices
Elephantiasis
Burgomaster

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.