~hedy/calcpond

WIP!!! - Online calculator utilities with Go backend and no other dependencies
~hedy/inbox

New mailing list added

1 year, 19 days ago

#WIP - Calculator Pond

Online calculator utilities focused on accessibility and optimization.

screenshot

#Goals

These are what I aim to achieve, but will probably be pretty far off for the time being.

→ User experience

  • Accessible — too many online uilities with glitchy interfaces and too-small click targets.
    • Snappy — with the help of JavaScript, but just enough, no more
    • Works without JavaScript — Equal functionality though with speed tradeoffs requiring an extra reload.
    • Works on text mode clients
  • Just the functionality — no ads or unrelated distractions
  • Simple interface — perhaps opinionated; not quite brutalist, but satisfactory — modern looks without stacking bloat and excessive web design
  • Speed

→ Developer experience

  • Zero dependencies
  • Readable codebase
  • Go backend (using net/http) with plain old HTML+CSS+JS frontend. No need for fancy frameworks or fresh new bleeding-edge technology
  • Modular and extensible

#Development

Only a fairly recent version of Go, a reasonably sound programmer's brain, and a usable text editor is required.

Optioanlly use air for hot-reloading.

#Plans

#Modules

  • [x] Postfix (stack) calculator
  • [x] Infix to postfix expression converter (TODO: Fix parentheses)
  • [ ] Don't force spaces as tokens (better tokenizer than strings.Fields LOL)
  • [ ] HCF and LCM
  • [ ] Factorisation
  • Categories
    • [ ] Number base
    • [ ] Fractions
    • [ ] Modular arithmetic
    • [ ] Statistics
    • [ ] Date and time
    • [ ] Vector and matrix
    • [ ] Scientific notation
    • [ ] Complex numbers

#Optimization

  • [ ] Stack implementation

#UI

  • [ ] Input fit width
  • [ ] Customise CSS — accents, font sizing, form elements
  • [ ] Mobile testing

#UX

  • [ ] noscript
  • [ ] Accessibility tests

#Backend

  • [ ] Unit tests
  • [ ] Linting
  • [ ] Minify CSS (requires 3rd party dependency?) and insert inline

#Misc

  • [ ] About and navigation