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.
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.
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.