Thanks for considering contribution to this project!
Pre-requisites:
node
<= 18 andnpm
mysql
,sqlite
orpostgres
See Getting Started for standard instructions.
Instead of using Docker, run the server locally and connect to a local MySQL database.
- Install all dependencies:
npm i
- Create a
.env
file by copying.env.defaults
withcp .env.default .env
and set the following in.env
:
export MYSQL_HOST=127.0.0.1
export MYSQL_PASSWORD=.... # your password
export MYSQL_USER=root
export MYSQL_DATABASE=a12nserver
- run
make
to start the server locally.
make fix
will run ESLint to fix style issues.
This project dogfoods @curveball
packages built from modern web and HTTP standards.
A non-exhaustive overview of core tools:
Tool | Rationale |
---|---|
TypeScript | Type safety |
Node.js | Runtime |
Knex | Database migrations |
Handlebars | Lightweight view templating |
ESLint | Linting |
jose | JSON Object encryption and signing |
bcrypt | Password hashing |
nodemailer | Email dispatch |
.
.gitignore
.env.defaults default environment variables
├── Dockerfile
├── LICENSE
├── Makefile
├── README.md
├── assets static files for running in browser (css, js)
├── bin scripts for generating JSON schemas and db migration
├── changelog.md
├── _dist built output of type definitions
├── docs
├── eslint.config.mjs
├── _node_modules
├── package-lock.json
├── package.json
├── schemas
├── src All source code including endpoint controllers and types
├── templates HTML view templates created with Handlebars
├── test unit/integration tests
└── tsconfig.json
Check out the tagged Issues list and labels. The issues require different skill levels, so for your first issue, pick something you're comfortable with.