Pecas: Leaderboards for Noko
Pecas is a time tracking leaderboard for https://nokotime.com.
To get started with the app, clone the repo and then install the needed gems running the setup script:
git clone [email protected]:fastruby/pecas.git
cd pecas
./bin/setup
The command ./bin/setup
, among other things, creates the .env
file which contains the following env variables:
# .env.sample
NOKO_ACCOUNT_HOST=ombulabs
NOKO_TOKEN=foobar
SMTP_SERVER=smtp.sendgrid.net
SMTP_PORT=587
SMTP_DOMAIN=ombushop.com
[email protected]
SMTP_USER_PASSWORD=secret
COUNTRY_CODE="ar"
DATABASE_NAME="pecas"
BASIC_AUTH_NAME="user"
BASIC_AUTH_PASSWORD="secret"
Now, you just need to update the NOKO_TOKEN
env with the correct value.
You can fetch the token value from the Noko app, after logging in, you can find the API token
or create a new one under the Connected Apps > Noko API > Personal Access Tokens
section.
The BASIC_AUTH_NAME
and BASIC_AUTH_PASSWORD
are already setup from the .env.sample
file but you can change their values at any time, will be used for a basic http auth for the application.
If you want to use Pecas to send Slack messages you'll also need to setup
SLACK_OAUTH_TOKEN
in the .env
file. This requires a SLACK_OAUTH_TOKEN
generated with the following scopes:
- chat:write
- usergroups:read
- users.profile:read
- users:read
- users:read.email
Once set up we can use the rake task notify:send_noko_format_warning['<name of slack group to alert>']
.
This task is destined to be run once an hour (for best results - a few minutes
after the hour) as it will only notify users Slack reports as being in the
timezone currently within an hour of 8pm.
You can setup your COUNTRY_CODE
environment variable with an ISO 3166 country code.
Otherwise the emails will be sent on holidays.
rails s
Go to http://localhost:3000
and start your session with the BASIC_AUTH_NAME
and BASIC_AUTH_PASSWORD
values.
rspec
NOTE: You'll need to have docker and docker-compose installed
Build the pecas docker image
docker-compose build
First-time only
docker-compose run web /bin/bash
./bin/setup
Start
docker-compose up
Import the entries with:
rake import:entries
Calculate the leaderboards with:
rake calc:leaderboards
Generate demo data with:
rake demo_data:setup
You can run this task specifying the number of months ago for the query:
# delete entries with date older than 6 months ago
MONTHS=6 rake delete_past_entries
Bug reports and pull requests are welcome on GitHub at https://github.com/fastruby/pecas. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
When Submitting a Pull Request:
-
If your PR closes any open GitHub issues, please include
Closes #XXXX
in your comment -
Please include a summary of the change and which issue is fixed or which feature is introduced.
-
If changes to the behavior are made, clearly describe what changes.
-
If changes to the UI are made, please include screenshots of the before and after.
Pecas
is maintained and funded by FastRuby.io. The names and logos for FastRuby.io are trademarks of The Lean Software Boutique LLC.