A GitHub bot and Web UI for managing contributor license agreements.
Requirements:
- Node.js v13.3.0
- yarn (install with
npm install -g yarn
)
A full setup requires also:
- a configured OAuth application in GitHub
- a configured GitHub application in GitHub
- an EdgeDB instance configured with schema from
dbschema/
.env
file populated with proper application settings- a web hook for pull requests
For more information on this first-time configuration, refer to the documentation in the project Wiki, at Configuration.
# install dependencies
yarn install
# run the development server
yarn next
This project uses onion architecture, with the following namespaces:
constants
contains configuration constantscomponents
contains reusable React componentspages
is a folder handled byNext.js
, with routes: pages and apipages-common
is a folder containing common code for pages and api used inNext.js
front-endpublic
is a folder handled byNext.js
, containing static filesservice.domain
contains domain objects and interfaces for external servicesservice.data
contains concrete implementations of external servicesservice.handlers
contains business logic
Business logic is lousy coupled with the data access layer, since it is only
aware of interfaces, not concrete implementations of DAL logic. Everything
inside the service
folder is abstracted from Next.js
and should be
reusable with other web frameworks, unmodified.
For documentation, refer to the project Wiki.