Skip to content

Hounddesk API, from the community for the community

License

Notifications You must be signed in to change notification settings

node-co/hounddesk-api

Repository files navigation

👋 Welcome to Hounddesk API

Welcome to Hounddesk, we're an Open Source project from the NodeCo community. Our goal is to provide a better way to connect with your community. Our roadmap is under construction at the moment.

Join our community

alt text

🧑‍🤝‍🧑 Contributing

Currently we're planning the project and preparing an early version, but no worries, you will be able to collaborate soon !

🧰 Our Stack

We are using many different technologies, but our main stack is Node.js using the following tools:

Name Type
Mongo Storage
Google Cloud API hosting via GKE
Firebase Authz
Typescript Static type definitions
Bugsnag API logs management

📘 Concepts

Hounddesk is build around the concept of creating plugable modules in order to encourage low coupling (that means reducing the direct dependency for another component).

Hounddesk Authorization and Authentication

Authentication and Authorization is one of the core modules of any application. For Hounddesk is not the exception, we want to be able to provide a secure system without compromising flexibility.

We will leverage Hapi authentication strategy for that.

Supported strategies:

Name Type
@hounddesk/plugin-firebase-authz Authorization
@hounddesk/plugin-firebase-users Authentication and User management
@hounddesk/password-policy Password policy

✏️ Notes

Hounddesk core libraries are Open Source too! They are under the project Bones

Hounddesk and Hounddesk core libraries are officially supported by NodeCo Community

💻 Installation

This is a GitHub template repository created from our open source project pkg-template

Before using, download and install Node.js. Node.js 10.16.3 or higher is recommended.

Available utilities enabled by default

  • TypeScript
  • Testing with Jest and Tap reporter
  • TypeScript linting using eslint
  • TypeScript watch mode using ts-node-dev
  • Formatting using Prettier
  • Pre-commit hook using Husky (will run linter, formatting and unit tests before each commit)

VSCode support

  • Format on save / type enabled by default using Prettier
  • Prettier extension configuration, Read more

Conventions

  • Source folder: src
  • Output directory: dist
  • Sourcemaps enabled by default
  • Jest current file: Unit test debugging command for VSCode
  • Debug: Node debugging command for VSCode
  • All the eslint plugins are using the recommended defaults

Available commands

Start in development mode (watch mode with automatic restart)

$ npm run dev

Build TypeScript

$ npm run build

Build TypeScript in watch mode (without automatic restart)

$ npm run build:watch

Run unit tests

$ npm test

Run linter

$ npm run lint

Run linter with auto fix

$ npm run lint:fix

Run tests with coverage report

$ npm run coverage

VSCode developer suggested extensions

The following extensions works great alongside with this setup:

  • Prettier
  • Jest - once installed, enable the runner >> Jest > Start runner

About

Hounddesk API, from the community for the community

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published