0.1.0 • Published 4 years ago

@howdypix/graphql-schema v0.1.0

Weekly downloads
6
License
MIT
Repository
github
Last release
4 years ago

HowdyPix

Display your photos in a gallery from your personal server. No cloud. Keep your privacy.

Organization

  • apps/ contains the node applications.
  • libs/ contains the shared code that will be used by the apps / other libs.
  • services/ contains the extra services that are required to run the apps. They are not developed by HowdyPix.

Development

  1. Make sure to have docker, docker-compose, node and yarn installed on your machine.

  2. Install the dependencies.

    yarn
  3. Start the dev process.

    yarn dev

    This command will watch on any file change in the apps and libs directory, and restart the node processes.

    You can then go to: http://localhost:3000

The previous command is useful to start everything, but it's more efficient to start processes separately to save time. For example, we rarely need to restart the RabbitMQ docker container. Here are the available commands:

yarn dev:libs      # Starts and watches the libs directory
yarn dev:services  # Starts and watches the services directory
yarn dev:apps      # Starts and watches the apps directory

You generally run the dev:libs and dev:services once, and restart many times dev:apps.

Tools for developers

Some tools are available right from the box when developing on this project, and it's important that you know about them since it can dramatically increase the development velocity.

ToolDescriptionDefault URL
GraphQL PlaygroundAllows to query the schema.http://localhost:3004/graphql
MailHogMailHog is a service to check the emails sent by the application.http://localhost:1080
Email TemplatesTo try the emails that will be sent. To change the parameters of the template function, pass them as query parameters.http://localhost:3004/email
RabbitMQRabbitMQ is the message-bus library.http://localhost:15672 guest / guest

Code quality

  1. Tests are mandatory for the most part of the application.
  2. Typescript has the strict option to enable better typing.