Mengan Wang
Google Summer of Code 2021
Organization: Project WikiLoop
Project: Tibetan Spellchecker
My task was to develop a MVP for a Tibetan Spellchecker, implementing features like autohighlighting, accepting spelling suggestions, and creating a markdown text editor.
Outcome of Contributions:
- Accepts spelling suggestions from back-end API.
- Optimized accepting suggestions for long text.
- Integrated back-end spellchecking API with front-end.
- Implemented markdown spelling editor using TipTap.
- Autohighlighting spelling errors.
- Implemented Loading indicator when API is called.
- Updated front-end look to appear more similar to Grammarly.
- Made front-end responsive to different screen-sizes.
- Integration with Quasar CLI.
- Upload text to text editor.
- Download edits as docx format.
- Developed front-end unit tests for various components using Jest.
- Created preliminary back-end tests with pytest.
Contributions:
Overall Thoughts:
I thought that this coding period was really educational and I got to learn a lot about front-end development! My favorite part was when I finally got my function to accept suggestions to work, because my original implementation was very inefficient where it would always reconstruct the contents from scratch everytime I accepted a change. For the optimization I spent more time thinking and planning how I would implement it, which made me realize coding is a very creative endeavor.
Integrating different components was very tedious and difficult. For the front-end and back-end, I kept getting CORS errors. When it was decided to use Quasar for our project, I think I spent way more time than necessary trying to implement unit tests while I was coding. There was very little documentation on integrating Jest and Quasar, which caused me to waste a lot of time through trial and error. Finally, figuring out how packages interacted with each other was a challenge too. Our project initially was using Vue2, but for Quasar integration I had to change the code to Vue3 and from that the unit tests stopped working which then I proceeded to try and fix. I spent too much time in package.json and fixing babel config files.
Overall, I learned a lot of lessons about thinking before I start coding and I'll continue working on features until the end of my summer!
Future Tasks:
- Suggestions and typing scroll wheel.
- Clicking on a spelling error will automatically scroll wheel and emphasize the corresponding suggestion.
- Further optimize Spellchecking API by making it send in single words/sentences at the time to keep processing while typing.
- Be able to create accounts and save content in browser (potentially).