Giter VIP home page Giter VIP logo

presenter's Introduction

Presenter

Software for searching, navigating, and presenting the Shabad OS Database

About

Shabad OS Presenter can be used to display bani & gurbani in the home or at the gurdwara. A server model allows multiple devices to act as a display or a controller. The same model enables live captions to be in sync with the projector / presentation device.

For more, please see:

Features

  • Multiple displays and controllers synced together
  • Live broadcast captioning / subtitling
  • Curated design
    • Text legibility/readability
    • Organized UI/UX functionality
  • Keyboard shortcuts
    • Search, History, Bookmarks
    • Jump to line N of shabad
    • Autoselect line based on context/position

Screenshots

Contribute

If you want to help, please get started with the CONTRIBUTING.md doc.

Community

The easiest way to communicate is via GitHub issues. Please search for similar issues regarding your concerns before opening a new issue.

Get organization updates for Shabad OS by following us on Instagram and Twitter. We also invite you to join us on our public chat server hosted on Slack.

Our intention is to signal a safe open-source community. Please help us foster an atmosphere of kindness, cooperation, and understanding. By participating, you agree to abide by the Contributor Covenant.

If you have a concern that doesn't warrant opening a GitHub issue, please reach out to us:

"Thank you!" to all the volunteers who've contributed to Presenter.

presenter's People

Contributors

akalustat avatar bhajneet avatar harjot1singh avatar inderpreet99 avatar jujhaar avatar manpreetsl avatar saihaj avatar swissarmykirpan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

presenter's Issues

Search: Index out of range

searching kk gk last letter causes: 2017/11/29 13:18:41 http: panic serving [::1]:49998: runtime error: index out of range

Current line bugfix

Using this sometimes fails to go to the current line and instead places the string in search screen. This also breaks the toggleline() function and makes it act as a "page down" somehow.

Create mobile apps

And possibly move them to their own repos. Should support Android and iOS. Android makes up about 80% of the market, and has a much wider range of performance requiring a little extra care. Both apps should "feel" native to their respective ecosystems.

Apps should in the future branch out past Shabad OS projection/control to leveraging the Shabad OS database for searching and saving shabads for personal use.

Port to React

I believe this would be an important step in the correct direction, in terms of making it easier to maintain and contribute in the future, as well as keeping the line between the backend and frontend very clear.

It'll also give us an opportunity to start using ES6+ to write cleaner and more concise code.

A react + webpack (using create-react-app) would also streamline the produced assets and code in production. It should probably be done before it's too big a task.

I'm happy to kick this off in a fork/branch.

Search first-letters

In cases where there is a line-break ] character the word after is being removed from first-letter search. This causes an index out of bounds error and cancels search. A bug fix is in place to remove those results and allow the other results to show up, but first letters need to be fixed in these cases (example rahao duja).

These searches break as examples:

jsd
hskA
sskmp

Allow custom characters for vishraams

Puneet Singh mentioned that it would be nice to use spacing to differentiate vishraams. Though he understands that vishraams using spaces at the end of a line-break is difficult to figure out, it is still something he'd like to be able to do. Allowing custom characters would let him put say 4 spaces for heavy vishraams.

Create hotspot option

In case there is no wifi available, the program should use the wifi adapter to create it's own hotspot that others can connect to

Improve Live Captions

Move two obs window options in menu to "live captions", clicking on this should create a window that shows a preview of what OBS will look like and also the optiosn on the side for them to change. Also add css export and link to buttons on that new window.

Option to turn off animations

For slower computers as well as to remove distractions for very dark rooms with just a projector in dark mode. Implementation should note that it is not recommended to turn off animations because it makes it harder to follow along when the line changes and both the current line and previous line were similar lengths.

"Connect to..." PIN Protection

Add PIN code protection so sangat members on the WiFi cannot abuse the projector feed. This should not be a problem in most use cases where the WiFi is sufficiently password protected, but would be inviting for gurdwaras with open WiFi and with an optional "Show PIN code" in bottom left.

In addition, add dialog that shows connected users so you can "block/kick" off any abusive users.

Adding this issue for transparency as it was brought up in #22 (comment)

Setup backend CLI

Be nice if we could do:

npm install -g @shabados/backend  # Install shabadOS as a CLI tool via npm
@shabados/backend  # Launch shabadOS backend

For linux/those who want a shell only, with updates.

Default Fullscreen Mode

There should be a way of setting the display window to fullscreen by default, hiding the menu. This is useful in the situation that core/desktop is installed on a laptop, and you just want to control it from a phone or laptop straight away.

switch backend to node

Since node can do everything Go can and is more used by developers, it is a good idea to switch. This should allow for more collaboration and no loss of features.

Fix Default Settings

Changes:

  • Space Between (Around if no fix for TV screens)
  • English Translation + Transliteration. No punjabi.
  • Turn off next line
  • Turn Vishraam Colors on.

Implement better bookmarks

How would one use this for an Akhand Paath? Couldn't seem to find anything relating to this, nor figure out what the Akhand Paath View does.

Create Tutorial

For first time run through, ask questions to user for defaults (day vs night, etc), and acclimate new users to the set up/terminology.

Write Tutorials

Choose a method: Github, website, wiki, etc. Then write these topics:

  • How to get started/installed
  • Troubleshooting/fixes
  • Advanced Features
  • Live Captioning
  • How to contribute to development

Decouple Settings

Do not overwrite old settings unless the settings version is incompatible with the new one.

Integrate Presentation Clicker/Remote

At least 3 buttons: Up, Down, and Autoselect. If more are available, then set Clear Display and Starting Line buttons.

Up and Down probably map to Page Up vs Down, in which case we will have to decide what to do with current hotkey bindings.

Decouple DB

To reduce download times, add a method to check db version and add implementation in program to block progress until a database is available, else download in background and replace on next load (warn user from closing app if it's downloading).

Change Ctrl+Spacebar Hotkey

This is too close to doing the combo Left+Spacebar (When on a second line of rahao and trying to select mainline to autoselect the next line). Ctrl+Shift+Spacebar is fine, it's not an often used hotkey and should still be easy enough to do one-handed on most laptops.

Live Caption Tool Additions

  • Apply any changes to within the tool itself, so that CSS doesn't have to be copied
  • Save and load templates

no such table: SHABAD

Fateh ji,

Very very cool project. I tried building and running this on my mac but immediately ran into an issue. I tried both the latest release version of the database, as well as building it myself and got the same issue:

--------------------------------------------------------------------------------
Error Code: 11
no such table: SHABAD
--------------------------------------------------------------------------------
2018/05/08 23:14:24 http: panic serving [::1]:59411: runtime error: invalid memory address or nil pointer dereference
goroutine 15 [running]:
net/http.(*conn).serve.func1(0xc4202800a0)
        /usr/local/Cellar/go/1.10.2/libexec/src/net/http/server.go:1726 +0xd0
panic(0x454ac80, 0x484a710)
        /usr/local/Cellar/go/1.10.2/libexec/src/runtime/panic.go:502 +0x229
database/sql.(*Stmt).Close(0x0, 0x0, 0x0)
        /usr/local/Cellar/go/1.10.2/libexec/src/database/sql/sql.go:2493 +0x2e
panic(0x454ac80, 0x484a710)
        /usr/local/Cellar/go/1.10.2/libexec/src/runtime/panic.go:502 +0x229
database/sql.(*Stmt).QueryContext(0x0, 0x461e800, 0xc4200c2008, 0xc4200759a0, 0x1, 0x1, 0x0, 0x0, 0x0)
        /usr/local/Cellar/go/1.10.2/libexec/src/database/sql/sql.go:2376 +0x4e
database/sql.(*Stmt).Query(0x0, 0xc4200759a0, 0x1, 0x1, 0x1, 0x45c4538, 0x1)
        /usr/local/Cellar/go/1.10.2/libexec/src/database/sql/sql.go:2431 +0x65
main.getResultsHTML(0x461e480, 0xc4202940e0, 0xc420184e00)
        /Users/ms/go/src/shabadOS/main.go:592 +0xf0f
net/http.HandlerFunc.ServeHTTP(0x45e5028, 0x461e480, 0xc4202940e0, 0xc420184e00)
        /usr/local/Cellar/go/1.10.2/libexec/src/net/http/server.go:1947 +0x44
net/http.(*ServeMux).ServeHTTP(0xc4201831a0, 0x461e480, 0xc4202940e0, 0xc420184e00)
        /usr/local/Cellar/go/1.10.2/libexec/src/net/http/server.go:2337 +0x130
main.CORS.func1(0x461e480, 0xc4202940e0, 0xc420184e00)
        /Users/ms/go/src/shabadOS/main.go:119 +0x24f
net/http.HandlerFunc.ServeHTTP(0xc42014c620, 0x461e480, 0xc4202940e0, 0xc420184e00)
        /usr/local/Cellar/go/1.10.2/libexec/src/net/http/server.go:1947 +0x44
net/http.serverHandler.ServeHTTP(0xc4202720d0, 0x461e480, 0xc4202940e0, 0xc420184e00)
        /usr/local/Cellar/go/1.10.2/libexec/src/net/http/server.go:2694 +0xbc
net/http.(*conn).serve(0xc4202800a0, 0x461e7c0, 0xc42002e9c0)
        /usr/local/Cellar/go/1.10.2/libexec/src/net/http/server.go:1830 +0x651
created by net/http.(*Server).Serve
        /usr/local/Cellar/go/1.10.2/libexec/src/net/http/server.go:2795 +0x27b

If I get time I'll dig in, but clearly there is a SELECT ... FROM SHABAD somewhere pointing to this table which doesn't seem to exist.

Keep up the great work, I look forward to digging in as I get more time, including into this issue if you don't get to it before me.

Create Chromecast App

Since we have mDNS figured out, we just need to work on Google's API for chromecast to create an app which is loaded on the chromecast. This will allow users to "send" their projector/display to anything with a chromecast attached to it.

To-Do Checklist

  • Database:
  • #29 Backend -> Node.js
    • #30 Add Usage Analytics (Matomo)
    • #31 Sentry for error reporting/crashes
    • #41 Backend CLI
  • #26 Frontend -> React
  • #32 Create tutorial
  • Settings:
    • #11 Decouple from updates
    • #33 Fix defaults
    • #16 Add option for margin.
    • #21 Add custom background images
    • #34 Add animated backgrounds
  • #12 Live Captions Tool
  • #35 Chromecast App
  • #36 Mobile App (iOS and Android)
  • #37 macOS Release (optional: App Store)
  • shabados/database#19 Fuzzy Search
  • #38 Presentation Clicker/Remote integration
  • #39 Documentation
  • Create short videos/picture-guides for tutorials, set up, explanations
  • Confirm Firewall settings on startup or include notice during installer to allow access
  • Linux Snap support (optional: Flatpak support)
  • Windows 10 store
  • API for converting ASCII to Unicode

Detect multiple displays and split navigator

Similar to SikhiToTheMax's behaviour, when another screen is detected, the navigator should be automatically split away, or a separate display window should be spawned on the non-primary desktop. Should also go into fullscreen mode, as in #18.

Unicode search support

While using my iOS Gurbani keyboard, I was unable to search.

I suspect this is down to the lack of support for the Gurmukhi/Punjabi unicode characters, and will probably be a useful thing to fix.

Akhand Paath View broken

Two issues:

  1. Raag Mala is off by one number in the frontend check
  2. All non SGGS banis don't allow Akhand Paath View (Seemingly)

As an aside: Akhand Paath View should probably be renamed to Continuous Scroll option or something to reflect what it actually does

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.