Skip to main content

Project Structure

So you've got two repositories now (assuming you followed the setting up guide.) this page looks at what's in the CIPP folder so you know where to look when you start coding.

The Root

In the CIPP directory itself there are a number of files and folders, the table below highlights the important ones:

ItemDescription
publicHolds static files used when compiling CIPP (building) for use. Mostly images and a little HTML scaffolding.
srcHolds the code that powers CIPP, this is where most CIPP development takes place.
package.jsonAn npm package file - this tells npm what other libraries/resources to use when building CIPP.
package-lock.jsonAn npm package file - this tells npm exact version numbers/packages to use for repeatable builds.
version_latest.txtOur version file. This gets incremented just before dev gets merged into main for a new release.

The Source

The table below goes into detail on the contents of the src directory:

ItemDescription
assets/imagesHolds image files used when building the app.
componentsHolds custom React components used throughout CIPP.
dataHolds static data files used throughout CIPP. At the time of writing the only one is countryList.json.
hooksHolds custom React hooks used throughout CIPP.
layoutHolds the main layout file which handles setting up the overall layout of the CIPP user interface.
scssHolds the SCSS files which control the look and feel of the CIPP user interface.
storeHolds the various API interfaces, app feature functional code and middle-ware to drive CIPP functionality.
viewsHolds the pages which make up the CIPP user interface.

of the remaining files in the src directory the following are noteworthy:

ItemDescription
_nav.jsHolds the navigation items displayed in the left hand navigation bar.
adminRoutes.jsHolds information on admin-privileged routes.
routes.jsHolds information on routes.