Skip to content

itenium-be/confac

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

confac

Version Lock-In

We're locked into these versions (for the backend):
Node v16.10.0, TypeScript v4.3 and mongodb v3.5.8

  • Could attempt to upgrade mongodb to v4.4.1
  • This is the lastest version of mongo that does not require VAX which our production server doesn't have
  • For later versions of mongo the @types/mongodb is no longer necessary but there are breaking changes
    • ex: ObjectId -> ObjectID

Starting DEV

front/back: npm install followed by npm start

Backend

Expects a running mongo with backend/src/config.ts settings.
Create a development .env file to change the default config.

# Start dev server
cd backend
cp .env.sample .env
cp -r templates-example templates
npm install
npm start

MongoDb

docker volume create mongodata
docker run -id -p 27017:27017 -e "MONGO_INITDB_ROOT_USERNAME=admin" -e "MONGO_INITDB_ROOT_PASSWORD=pwd" -v mongodata:/data/db --name confac-mongo mongo:3.6.3

Migrations

cd deploy
npm install
npm run create some-name
npm run up

# Or on server:
cd deploy
./migrate.sh

Emailing

Development: Set SENDGRID_API_KEY in src/config/index.ts
Production: Set process.env.SENDGRID_API_KEY

Server Dependencies

Fonts need to be present in /usr/share/fonts for pdf text to be selectable.

For the merging of PDFs, PDFtk needs to be installed.

apt-get install pdftk
cinst -y pdftk-server

Deployment

See deploy/deploy.sh

Seeding random data

Configure amounts in backend/src/faker/faker-config.ts Mongo db credentials are read automatically from the env file.

cd backend
npm run faker

Template testing

Location: ./templates/*.pug

# Compile html
gulp build
gulp watch

# Watch html (http://localhost:8080/)
npx http-server -o ./dist -o

E-invoice xml

The e-invoices generated by confac should comply with the Peppol BIS Billing 3.0 standard defined by the EU. To doublecheck if the created xml does follow this protocol, you can use this tool.

Choose 'OpenPeppol UBL Invoice (2023.11) (aka BIS Billing 3.0.16)' as the ruleset. This is the most current ruleset at the time of writing.

Release notes and the general xml structure can be consulted here