# Akkounts This app allows Kosmos/LDAP users to manage their accounts, including credentials, invites, donations, etc.. ## Features * [x] Log in with existing LDAP account * [x] Reset account password by providing both username and email address * [x] Reset account password when logged in, via reset email * [x] Log in with admin permissions * [x] View LDAP users as admin * [x] Sign up for a new account via invitation * [x] List my donations * [x] Invite new users from your account * [x] Create new Lightning (lndhub) wallet for new users * [x] See Lightning wallet balance and setup code for Blue Wallet * [ ] Sign up for a new account by donating upfront * [ ] Sign up for a new account via proving contributions (via cryptographic signature) * [ ] ... _Planned features are not at all a complete or static list, of course. Suggestions and pull requests welcome!_ ## Development ### Rails app Installing dependencies: bundle install yarn install Setting up local database (SQLite): bundle exec rails db:create bundle exec rails db:migrate Running the dev server: bundle exec rails server Running the background workers (requires Redis): bundle exec sidekiq -C config/sidekiq.yml Running all specs: bundle exec rspec ### LDAP server TODO make it easy to run a local Kosmos LDAP server for development, without manual LDIF imports etc. (or provide a staging instance) ## Documentation * [Ruby on Rails](https://guides.rubyonrails.org/) * [Sass](https://sass-lang.com/documentation) ### Front-end * [Tailwind CSS](https://tailwindcss.com/) **Caveat:** if you only add Tailwind classes/directives to templates or helpers, but there's no change in the stylesheet files, then the new directives won't be compiled in production. In this case, count up the version comment at the top of `app/javascript/stylesheets/application.scss` to trigger compilation. ### Testing * [RSpec](https://rspec.info/documentation/) * [Capybara](https://rubydoc.info/github/teamcapybara/capybara/master) ### LDAP / Auth * [devise_ldap_authenticatable](https://github.com/cschiewek/devise_ldap_authenticatable) * [net/ldap](https://www.rubydoc.info/gems/net-ldap/Net/LDAP) ### Asynchronous jobs/workers * [Sidekiq](https://github.com/mperham/sidekiq/wiki/) * [ActiveJob](https://github.com/mperham/sidekiq/wiki/Active-Job) ## License [GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)