Project Layout

The JobTech Taxonomy API project is structured in a way that tries to make it easy to find the code and resources you need. The project is divided into several directories, each with a specific purpose. The following table below provides an overview of the directories in the project.

Major features that may not be necessary for all users are placed in the features directory. The env directory contains aliases and configurations for different environments. The resources directory contains files that are used by the JobTech Taxonomy API but that are not generated during build, found in a database or source code.

Features

The features directory contains optional features that can be enabled or disabled. These features are not necessary for the core functionality of the JobTech Taxonomy API. The features are implemented as middleware and can be enabled or disabled depending on the configuration. The features are intended to allow for easy extensibility of the JobTech Taxonomy API and to increase security by, for example, deploying without the taxonomy editor related features.

Directories

DirectoryDescription
docsDocumentation
docs/developmentDevelopment-related documentation.
docs/taxonomyEnd user documentation.
envFunctionality related to various aliases.
env/devSettings, tools and helpers for development.
env/kaochaConfiguration for the Kaocha test runner.
env/prodProduction environment configurations.
env/profProfiling configurations.
env/testTesting related code.
resourcesFiles that are used by the JobTech Taxonomy API but that are not generated during build, found in a database or source code.
resources/publicStatic web resources and documents used by the JobTech Taxonomy API.
srcSource code for most of the implementation of the JobTech Taxonomy API.
src/clj/jobtech_taxonomy/apiThe server, database and API implementation.
src/clj/jobtech_taxonomy/commonUtilities and code shared by the API and features.
src/clj/jobtech_taxonomy/featuresOptional features.
testRoot directory for test sources and resources.
test/clj/integrationFor tests that go from HTTP request to response.
test/clj/unitUnit test code.
test/clj/utilsHelper functions for the tests.
test/resourcesData used in tests.