Simple project management system with GraphQL API, allowing multiple users collaborating on projects and tasks.
Ruby 3.2.0
, Rails 7.0
, PostgreSQL
, GraphQL
, GraphiQL
, Ransack
, RSpec
, FactoryBot
, Faker
, Rubocop
, Pry
, Devise
, Doorkeeper
, Pundit
, ActiveAdmin
.
- GraphQL API with pagination, sorting, filtering, and error handling.
- User authentication with Devise and OAuth 2.0 API access with Doorkeeper.
- Authorization rules with Pundit policies.
- RBAC (Role-based access control) with fully customizable permissions matrix.
- Admin panel with ActiveAdmin for system admin.
- RSpec specs with fully covered graphql queries and mutations.
Below is a ERD diagram of the project:
Go to docker-compose.yml
, comment line 17
and uncomment line 18
, then run this command to setup the database:
docker compose up
Then exit containers (try spamming CTRL+C
), comment back line 18
and uncomment line 17
, then run the following command and you are ready to go:
docker compose up -d && docker compose attach app
To run specs, attach to the app
(attach shell in the VSCode or from CLI run docker compose exec -it app bash
) container and run (test database must be seeded):
RAILS_ENV=test rails db:reset && rspec