This plan captures our work in January. This iteration will mainly be focused on getting contributors to the project, writing down the requirements for the features and planning the overall tech architecture of the project. Everyone is encouraged to contribute.
Please refer to the Roadmap before starting.
Planned Features
1. Verse of the day
👉Every day a new verse is selected and sent to users via email, push notifications etc. Similar to how it is implemented in v1.
👉Could rethink the process of selecting verses.
2. Full-Text Search
👉Should be fast and in realtime.
👉Could use something like Algolia.
👉Search by chapter, verse, phrase or person to quickly find what you are looking for.
👉Language independent.
3. Verse Page
- Each verse should have - >
👉Sanskrit verse
👉Transliteration of the Sanskrit verse
👉 Word meanings
👉Translation by an authorized source
👉Commentary by an authorized source
👉Audio (See feature 4 for more detail)
Actions for each verse page / on selecting a verse on the chapter page -
👉copy text
👉share text (Verse sharing should have chapter and Verse number and link for that Verse.)
👉bookmark/favourite
👉add notes (See feature 18)
👉highlight
4. Audio for verses
👉Audio for the Sanskrit verse, translation as well as commentary for all the verses.
👉 Initial Hindi and English support and later add for more languages.
👉Use Alexa or Google Wavenet for text to speech.
5. Progress Tracking
👉User should be able to keep track of their Chapter-wise, Overall and Monthly Progress using detailed graphs and statistics. (something to similar to what's there in v1)
👉Add a GitHub like streak chart.
👉Time connected with Krishna (daily/weekly/monthly)
6. Achievements System
👉 Reward user with badges etc on completing certain tasks (eg 100 verses read).
👉 Allow user to share the achievement.
7. Reading Plans
👉 Allow users to subscribe to reading plans so that they can improve their Gita reading habits.
👉 Eg - monthly, yearly etc.
8. Favourites
👉 Allow users to mark verses as a favourite so that they can read those later.
9. Theme Customization
👉Allow users to personalize the theme by allowing them to change the -
- font size
- colours
👉Add option for dark mode.
10. Offline availability
👉Allow users to download the verses so they can read when there is no internet connection.
11. Settings
👉Choose verse transliteration language
👉Choose translation/commentary source and language
👉Choose secondary commentary source and language
👉Choose font size, style and theme
12. Last read verse
👉Show user's last read verse on the homepage so that they can quickly navigate to it.
13. Random verse
👉 Display a random verse on the homepage
👉 New verse on each refresh
14. Navigate to specific chapter and verse
👉 Allow the user to go to a specific chapter and verse
15. Subscription popup (full screen for mobile)
👉 Display the first time and if not subscribed then again after x number of times.
👉 Option to subscribe later (display after some time)
16. Chat and forum
👉A community to chat and discuss topics related to the Bhagavad Gita.
17. Daily Alarm
👉Remind the user to read the Gita each day.
18. Notes for each verse
👉A popup that allows a user to enter notes for a particular verse.
👉Options like save, delete, share and copy.
19. History
👉List of all the verses read by the user in reverse chronological order.
20. Quiz
👉Daily quizzes on the Bhagavad Gita.
21. Dictionary
👉A dictionary of all the word meanings from the Gita.
22. Hierarchical ordering
👉Structure the shlokas methodologically. Arrange them into Chapter No. And Shloka No. and add meta accordingly in frontend as well as API. 3.67 would mean Shloka no. 67 of Chapter 3.
23. Setup Patreon + merchandises
👉Setup patreon for donations and merchandise store.
Please feel free to contribute to the features above.
Tech Architecture
Backend: Flask
Frontend: ReactJS (SSR, maybe with NextJS)
Mobile Apps(Android and iOS): React Native / (Java and Swift) depending on the experience of devs.
Database: PostgreSQL
CI/CD: Travis
Analytics: Google Analytics
Application Performance Monitoring: AppDynamics
CDN: Cloudflare
Unit Testing: JEST (for JS), unittest (for Python)
Integration Testing: Cyprus (for JS)