/OpenType

Minimal typing test with ai generated tests

Primary LanguageCSS

Contributors Forks Stargazers Issues MIT License LinkedIn


OpenType

AI generated minimalistic typing test

About The Project

🚧 OpenType is currently a WIP

OpenType is a minimalist typing test with ai generated tests. It takes alot of inspiration from monkeytype.

Currently it is very slow and uses webgpu to accelerate the typing test generation. So, user experience will vary depending on hardware.

Built With

  • React
  • Tailwindcss
  • DaisyUI

Getting Started

Still WIP so run application in dev mode

Prerequesets

  1. Install tailwindcss
    npm install -D tailwindcss
  2. Initialize tailwindcss
    npx tailwindcss init

Installation

  1. Clone the repo
    git clone https://github.com/lagschwein/OpenType.git
  2. Install NPM packages
    npm install

(back to top)

Usage

  1. Start dev server
    npm run dev
  2. When modifying styling make sure tailwind cli is running
    npx tailwindcss -i ./src/index.css -o ./src/output.css --watch

Note

webgpu is currently only supported on select browsers so make sure to use a compatible browser when running the project e.g. Chrome 113^, Edge 113^

Roadmap

  • Refactor everything
    • Create MLCEngine in seperate thread so UI isn't blocked
  • Support for randomly generated test while model download is happening
  • Pick and choose from lots of themes
  • Improve stats processing and display
  • Enter your own prompt to customize the type of tests generated
  • Support for generating code typing tests
  • Game mode for competing against other users in type races
  • Competitive community with typing races

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request