Vision
A website TypeLit, which I used for couple of weeks, required a paid subscription to add custom books. I upgraded, but soon realised the website is missing many features such as accent configuration, book’s page screenshot, gamification, and more.
When on train, after finishing a page, TypeLit couldn’t save my progress due to unstable internet connection, and there was no local backup. Instead of rewriting the page again, I decided to build my own application for it - Rewrite.
Technologies
- Svelte and SvelteKit
- TailwindCSS
- Appwrite Databases
- Appwrite Functions using Node.JS
- Auth UI
- Google Cloud APIs
- EPUB.to APIs
Screens
A simple homepage inviting visitors to sign in before using the platform. To allow quick-play, users are welcome to create anonymous (guest) accounts with 1 click.
Authentication flows powered by Auth UI, supporting many different authentication methods such as magic URL, phone OTP, email&password, OAuth, and more.
Logged-in users can visit a library containing books. They can pick from many pre-uploaded books, or upload their own .epub
or .pdf
books.
Once user picks a book, they can select whih page they want to rewrite. Table smartly filters-out already finished pages, and sorts the rest in ascending order.
Rewriting a page of a book is the main view of this application. User is given input and book’s text. The goal is to rewrite the page without making mistakes - mistakes must be corrected.
If books include illustrations, user can also toggle page-view and see the book’s page original design.
Completing a page grants user experiences, and invites them to continue to the next book’s page.
Current level progress and experience remaining can also be found in a level modal.
Alongside leveling-up the account, users can also maintain their streaks, and see how long they can go without missing a day of rewriting a page.
You may have noticed golden words in page, those were words needed to finish a quest. Doing quests grants coins that can be used for cool abilities.
Users can also look at their profile statistics and complete set of achievements.