- A ruby version manager such as rvm, rbenv or asdf
- Ruby 3.4.4 (Installed via ruby manager ^)
- PostgreSQL, if you're not using Docker.
- npm and yarn (
npm install -g yarn
)
Build and start the application with docker compose up
. Once the application has successfully started, you should be able to visit it at http://localhost:3000/
Run commands in docker with the bin/dc
helper script on macos or Linux.
$ bin/dc rails db:setup
$ bin/dc rails test
Or by prefacing rails
commands with docker compose run stocks
.
$ docker compose run stocks rails db:setup
$ docker compose run stocks rails test
- Run setup:
bin/setup
- Run the Rails server locally:
bin/dev
It is strongly recommend to use Docker. See instructions above.
After running bin/rails db:setup
, the database will automatically be seeded with three default users.
Role | Username | Password | |
---|---|---|---|
Teacher | Teacher | teacher@example.com | password |
Student | Student | student@example.com | password |
Admin | Admin | admin@example.com | password |
Use the username and password to log in and test the application locally.
⚠️ Note: Do not rundb:seed
in production unless explicitly required.
Access the app via localhost:3000
- Add tests with your PR
- Run
bundle exec rails test
and make sure all tests are passing - Run
bin/lint
and fix any errors - Create a PR with context in the description and in the comment use the key word
Resolves
and the issue number to link the issue to the desciption (For example Resolves #32)
Stocks in the Future is a program with the mission of developing highly motivated middle school students who are eager to learn and dedicated to attending class through the use of incentives coupled with a financial literacy curriculum focused on investing that reinforces Math, Language Arts and Social Studies. Stocks in the Future pushes to educate, encourage, and empower the next generation of financially-literate individuals.
If you have any questions about an issue, comment on the issue, open a new issue, or ask in [the RubyForGood slack] (https://join.slack.com/t/rubyforgood/shared_invite/zt-2k5ezv241-Ia2Iac3amxDS8CuhOr69ZA). Stocks-in-the-future has a #stocks-in-the-future channel in the Slack. Feel free to join the community!
-
Find an issue to work on from our existing issues. If you've identified a bug or potential improvement, please discuss it in the #stocks-in-the-future Slack channel before starting work.
-
Create a branch from
main
with a descriptive name including the issue number$ git checkout main $ git pull $ git checkout -b feature-description-123
-
Make your changes and commit them with descriptive messages
$ git add . $ git commit -m "Add feature X that solves problem Y"
-
Run linting to ensure code quality
$ bin/lint
If issues are found, fix them or use auto-fix when appropriate:
$ bundle exec standardrb --fix
-
Run tests to verify your changes don't break existing functionality
$ bin/rails test
-
Push your branch to GitHub
# For the first push to a new branch $ git push --set-upstream origin feature-description-123 # For all subsequent pushes $ git push
-
Open a Pull Request against the
main
branch- Include a clear description of the changes
- Reference the issue number in the PR description (e.g., "Fixes #123")
- Wait for CI checks to pass
- Request review from team members
If you need help at any point, comment on the issue you're working on or ask in the #stocks-in-the-future channel on the Ruby for Good Slack.