This is a work in progress.
- Rewrite SQL to be more efficient.
- Replace remaining custom database client usage with SQLAlchemy equivalents.
- Use locks to prevent simultaneous runs.
- Use a queue for asynchronous support and better response time handling.
- Rate limit the whole application as per WaniKani guidelines.
- Add asymmetric encryption to handle API keys from frontend to backend.
- Add Dockerfiles for Postgres, Zookeeper, and the Python backend.
- Add unit tests and integration tests
- Add documentation that explains what the program does and how.
- Split main entry point into multiple getters for populating the UI.