Introduction for Developers
Pupilfirst LMS is a Ruby on Rails application. Rails follows a doctrine of convention over configuration, and Pupilfirst LMS sticks to the convention in most cases. However, it does differ from the standard in a few ways:
ReScript & React
ReScript is our language of choice for writing front-end code. ReScript also offers first-class bindings for ReactJS and is used to build front-end components.
GraphQL API
Since ReScript is strongly-typed, GraphQL is a great fit. Pupilfirst LMS uses the graphql-ruby library on the server, and graphql_ppx for client-side code, to offer safe & simple API communication.
Service Objects
You'll find most business logic in classes in the app/services
directory. Traditional Rails applications tend to have
"fat models and skinny controllers". However, the use of service objects allows all parts of the application to stay
reasonably lean, and to have one clear purpose.