Documentation for the various components of FOLIO is in continuous development. Since the system is composed of many separate components, each component is documented individually. The best places to start are the FOLIO Developer’s Curriculum, which is a series of self-paced or instructor-guided lessons, and the early chapters of the Okapi Guide and Reference, which describe the system as a whole and explain how the parts fit together.
In the context of those early chapters, you may then wish to go on to:
Community and contribution
The community section explains how to be involved, provides the contribution guidelines, lists the various collaboration tools and has some recommendations about when to use each.
The FOLIO Developer’s Curriculum is a series of lessons that can be followed on your own or can form the basis of an instructor-led workshop.
The most important technical document is the Okapi Guide and Reference, which after the introductory sections already described, goes into detail about the Okapi API Gateway that controls a FOLIO system.
With that background understanding, see the documentation for each server-side module, especially RAML Module Builder (RMB).
The FOLIO user-interface toolkit is called Stripes. It is described in the Stripes README, which leads to the related documentation.
With that background understanding, see the documentation for each client-side module, especially the “ui-users”.
- Background orientation
- Setup and configuration
- Getting started
- Reference documentation
- Fundamental documentation
- Development tips
- Development management
- Development operations
- Other topics
Refer to the Guidelines section.
Other orientation guides:
- Navigation of commits and CI via GitHub and Jenkins.
- Search dev.folio.org and other search and report facilities.
Setup and configuration
- Some tips to assist developers to configure their local workstation setup.
- Built artifacts – released and snapshot FOLIO artifacts in various formats. Configurations for accessing.
- Source code – explanation of each repository.
Refer to the Start section.
- Overview high-level summary of “getting started” points for a new developer – an on-boarding guide.
- Having followed that getting started documentation and understanding the fundamentatal documentation, then follow Running a local FOLIO system.
- The Commence a module - structure and configuration guide explains a consistent layout for back-end and front-end modules.
- Overiew of all technical reference documentation.
- The set of automatically generated API documentation.
These are listed in the Start section.
- Manage notifications to keep abreast.
- Conduct troubleshooting.
- Code analysis and linting facilities explains ESLint, SonarQube, other lint tools, and preparing for pull requests.
- For Contextual Query Language (CQL) examples, see the Glossary, the FOLIO CQL to PostgreSQL JSON converter, the API docs, and the debug output for tests in each backend module.
- Use raml-cop to assess RAMLs, schema, and examples. A guide to its use with some explanations of its messages.
- Conduct API testing using Postman collections and Newman against a running module.
- Describe schema and properties.
- Conduct cross-module joins via their APIs.
- Working with dates and times.
- How to check for a valid UUID.
- User experience design.
- Accessible Routing in FOLIO explains assisted navigation.
- The FOLIO Developer’s Curriculum is a series of lessons that can be followed on your own or can form the basis of an instructor-led workshop.
- Release procedures.
- Regular FOLIO releases.
- Search and report facilities (e.g. open pull requests needing review).
- Create a new FOLIO module and do initial setup.
- Maintain tidy repositories.
- The FOLIO Project Roadmap including the development and milestone plan for Version 1 and the feature backlog, and the FOLIO Development Process Overview, and other important documents and resources are listed at the Wiki.
For people assisting with the FOLIO development operations infrastructure (DevOps) there are various notes. For example regarding operation, enhancement, and configuration of Jenkins continuous integration.
- Which forum to use for communication.
- Special Interest Groups (SIGs).
- Guidelines for Contributing Code.