Aceielts.pro is an English writing analysis tool I was building in 2017/2018. It used Natural Language Toolkit to analyze users’ writing. The idea behind this project is using machine learning and technology to help improving writing score of IELTS test for myself. Especially after IELTS computer based test, this can make it more useful for test takers.
Tech Stacks Re-platform
With the technology stacks changes, the Ace Ielts tech stacks became a bit of outdated, especially running a duo database (MongoDB + PostgreSQL), Mongo is great, but we did not really use the power of document db from Mongo. The final decision to solve this is,
- Re-platform to more powerful infrastructure of AWS.
- Using docker for deployment and make it easier.
- Re-factor, remove MongoDB dependency
- Migrating existing MongoDB data to PostgreSQL
Section | Original | New | Reason |
---|---|---|---|
Compute | VPS with 1g Ram | AWS EC2 t3a + 2g Ram | more powerful. |
Data Base | MongoDB + PostgreSQL | PostgreSQL | MongoDB is a great document based no-SQL db, but it increases maintainability and we did not really need no-SQL. |
Platform | VPS | AWS | more complicated, but more stable. |
Cost | $5/month | $8~10/month | cost more. 😅 |
Deploy | ssh | docker | much easier. |
Plan for the Re-platform and Re-factor
- Refactor code base to save essays to PostgreSQL (including model, view changes on Django).
- Building migrating script to migrate MongoDB to PostgreSQL.
- Testing analysis locally.
- Building docker container locally, then deploy the new container based Ace Ielts.
To-do and Roadmap
- Build a custom AES (automatic essay scoring) AI model.
- Build SPA (React/Vue) and add RESTful API (Django Rest Framework).
- Mock UI to be similar to IELTS test (computer based).
References
Related posts:
How to deploy a Django application to a k3s cluster -- Part 1, Planning and Investigation
How to make EC2 Spot Instance Data Persistent? (To Save Budget and For Fun)
Why there is an unknown EBS Daily Snapshot on my AWS dashboard?
AWS Lambda Container Image vs AWS Lambda
⭐️ Weekly Report - Technology Reading Update - 27 Nov, 2020
⭐️ Weekly Report - Technology Reading Update - 09 Oct, 2020
⭐️ Weekly Report - Technology Reading Update - 25 Sep, 2020
⭐️ Weekly Report - Technology Reading Update - 18 Sep, 2020
Pingback: How to deploy a Django application to a k3s cluster - part 1, prepare to re-platform AceIelts.pro to K8s - Tim Bai's Zone