Giter Club home page Giter Club logo

shlokas's Introduction

Enhance your spiritual practice and deepen your understanding of the Vedas with Shlokas, the mobile app that makes it easy to memorize and recite Vedic verses. Try it out today and take your spiritual journey to the next level.


Tests Tests Codacy Badge

Get involved

If you'd like to help develop the project, here's a list of links to get you started:

  1. Good first issues โ€“ a list of simple issues any developer could start from.
  2. Roadmap - list of tasks we are working on.

Documentation

  1. Architecture โ€“ Overall project architecture
  2. Models โ€“ Domain models

Develop

  1. npm run dev โ€“ run the application at http://localhost:8080
  2. npm run run:device โ€“ run application on a device
  3. npm run run:device:hot โ€“ run an application on a device with hot reloading

Develop in VSCode decvontainer

  1. Generate Personal Access Token with "package:read" permission from GitHub
  2. Export GITHUB_TOKEN: echo "GITHUB_PAT_TOKEN=XXXXX > ~/.profile"
  3. Use "Rebuild and run in container" command in VSCoder

Environment

There are two options for launching services:

  1. Use prebuild containers โ€” a fast and easy way to run the application. You don't need to build anything. This option is for you if you are working on the Shlokas app but not the services.
  2. Build all the services from the sources. This option is for you if you are working on a specific service and want to modify, build, and run it.

Use prebuild containers

To run the application in a full environment, you need to start all the services. You can do that by cloning the shlokas-server repository and running ./dev.run.sh command. It will download all the necessary images and run all the services in the docker containers.

# somewhere in your projects folder outside of this repo
gh repo clone akdasa-studios/shlokas-server
cd ./shlokas-server
./shlokas.run.sh

Build all the services from the sources

If you are working on a specific service and you want to build it and run you should do the following:

  1. Clone all the repositories in the same folder like shlokas
  2. Run shlokas.build.sh script to build all the services from the sources
  3. Run all the services with shlokas.run.sh script
# clone all the repos
gh search repos --owner akdasa-studios --match name shlokas --visibility public | while read -r repo _; do
  gh repo clone "$repo" "$repo"
done

# build and run all the services
cd ./akdasa-studios/shlokas-server
./shlokas.build.sh
./shlokas.run.sh

Services

The following services will be started:

Repo Description Link
Landing Landing page. http://localhost
Admin Admin panel to manage content. You can add verses, images, declamations and so on http://localhost/admin
Database Database and bootstrap scripts. Starts CouchDB and bootstraps it with necessary data http://localhost/db/_utils
Auth Authenticatoin service. Registers and logins user via CouchDB No UI
Balancer Balancer No UI
Content Content server. Allows to download and upload images and declamations No UI
TOTP One time password service No UI
Mailcather Email service. Used only for debugging purposes in dev environment. http://localhost:1080

Related Repositories

Here is a list of related repositories:

Repo Description
Core Core Library. Contains business logic.
Server Scripts to run related services
E2E End to end tests
UiKit UI Kit
Utils Utils
Protocol Interfaces describes communication protocol between services and client

shlokas's People

Contributors

akdasa avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

shlokas's Issues

๐Ÿš€ User can remove verse from Inbox deck

Feature: Decks / Inbox Deck

  Background: Verse library
    Given Verse library contains the following verses:
      | Verse Number | Text                      | Translation              |
      | BG 1.1       | dharma-ksetre kuru-ksetre | O Sanjaya, after my sons |
      | BG 1.2       | drstva tu pandavanikam    | King, after looking ...  |
      | BG 1.3       | pasyaitam pandu-putranam  | O my teacher, behold ... |


  Rule: User can remove verses from the Inbox deck

    Scenario: User removes previously added verse from the Inbox deck
      I, as a user, want to remove the previously added verse If I found it
      hard to memorize and return back to it later

      Given Inbox deck has the following cards:
        | Verse Number | Card Type   |
        | BG 1.1       | Translation |
        | BG 1.3       | Translation |
        | BG 1.3       | Text        |
      When I remove verse "BG 1.3" from the Inbox deck
      Then Inbox deck contains the following cards:
        | Verse Number | Card Type   |
        | BG 1.1       | Translation |

    Scenario: User reverts accidentally removed verse from the Inbox deck
      I, as a user, want to revert accidentally removed verse

      Given Inbox deck has the following cards:
        | Verse Number | Card Type   |
        | BG 1.1       | Translation |
        | BG 1.3       | Translation |
        | BG 1.3       | Text        |
      When I remove verse "BG 1.3" from the Inbox deck
      And I revert the last action
      Then Inbox deck contains the following cards:
        | Verse Number | Card Type   |
        | BG 1.1       | Translation |
        | BG 1.3       | Translation |
        | BG 1.3       | Text        |

Grade doesn't disappear

I returned card to it's original position after I almost swiped it out. But it still shows grade. image

Upload initial sources

Upload initial sources from bhakta-joe repository and remove all dependencies like firebase

Sync only changed VerseViewModel

Adding verse to the Inbox Deck synces the whole list, but only one item must be synced.

Screen.Recording.2022-12-19.at.06.46.31.mov

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.