mirror of
https://github.com/System-End/hackatime.git
synced 2026-04-19 23:32:53 +00:00
* feat: add API documentation and CI checks - Add Rswag for automated API documentation generation - Add Swagger specs for all endpoints - Add CI step to enforce that swagger.yaml stays in sync with code - Add static test keys in seeds.rb for easier testing - Update AGENTS.md and README.md to support this * Merge branch 'main' of https://github.com/deployor/hackatime * Merge branch 'main' into main * Deprecations! Yay! :) * It was wan addicent i swear linter! Dont hurt me * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Copilot..... we love you! Also this project is open and so are api docs meant to be if another AI reads ts! * Merge branch 'main' of https://github.com/deployor/hackatime * Merge branch 'main' into main * Merge branch 'main' into main * Update app/controllers/api/admin/v1/admin_controller.rb If you say so Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update spec/requests/api/v1/my_spec.rb I guessss? Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Failed my own CI wow.... EMBARRASSINGGGG * Merge branch 'main' into main * Merge branch 'main' into main * clarify wording on internal/revoke * Merge branch 'main' into main * update swagger docs
61 lines
2.1 KiB
Markdown
61 lines
2.1 KiB
Markdown
# Hackatime
|
|
|
|
[](https://uptime.hackclub.com/status/hackatime)
|
|
[](https://uptime.hackclub.com/status/hackatime)
|
|
[](https://hackatime-badge.hackclub.com)
|
|
|
|
## Local development
|
|
|
|
```sh
|
|
# Set it up...
|
|
$ git clone https://github.com/hackclub/hackatime && cd hackatime
|
|
|
|
# Set your config
|
|
$ cp .env.example .env
|
|
```
|
|
|
|
Edit your `.env` file to include the following:
|
|
|
|
```env
|
|
# Database configurations - these work with the Docker setup
|
|
DATABASE_URL=postgres://postgres:secureorpheus123@db:5432/app_development
|
|
WAKATIME_DATABASE_URL=postgres://postgres:secureorpheus123@db:5432/app_development
|
|
SAILORS_LOG_DATABASE_URL=postgres://postgres:secureorpheus123@db:5432/app_development
|
|
|
|
# Generate these with `rails secret` or use these for development
|
|
SECRET_KEY_BASE=alallalalallalalallalalalladlalllalal
|
|
ENCRYPTION_PRIMARY_KEY=32characterrandomstring12345678901
|
|
ENCRYPTION_DETERMINISTIC_KEY=32characterrandomstring12345678902
|
|
ENCRYPTION_KEY_DERIVATION_SALT=16charssalt1234
|
|
```
|
|
|
|
Comment out the `LOOPS_API_KEY` for the local letter opener, otherwise the app will try to send out a email and fail.
|
|
|
|
## Build & Run the project
|
|
|
|
```sh
|
|
$ docker compose run --service-ports web /bin/bash
|
|
|
|
# Now, setup the database using:
|
|
app# bin/rails db:create db:schema:load db:seed
|
|
|
|
# Now start up the app:
|
|
app# bin/dev
|
|
# This hosts the server on your computer w/ default port 3000
|
|
|
|
# Want to do other things?
|
|
app# bin/rails c # start an interactive irb!
|
|
app# bin/rails db:migrate # migrate the database
|
|
app# bin/rails rswag:specs:swaggerize # generate API documentation
|
|
```
|
|
|
|
You can now access the app at <http://localhost:3000/>
|
|
|
|
Use email authentication from the homepage with `test@example.com` or create a new user (you can view outgoing emails at [http://localhost:3000/letter_opener](http://localhost:3000/letter_opener))!
|
|
|
|
Ever need to setup a new database?
|
|
|
|
```sh
|
|
# inside the docker container, reset the db
|
|
app# $ bin/rails db:drop db:create db:migrate db:seed
|
|
```
|