DataOps Console

This project was generated by Flatlogic Platform.

  • Frontend: React.js

  • Backend: NodeJS

    Backend Folder Structure

    The generated application has the following backend folder structure:

    src folder which contains your working files that will be used later to create the build. The src folder contains folders as:

    • auth - config the library for authentication and authorization;

    • db - contains such folders as:

      • api - documentation that is automatically generated by jsdoc or other tools;

      • migrations - is a skeleton of the database or all the actions that users do with the database;

      • models- what will represent the database for the backend;

      • seeders - the entity that creates the data for the database.

    • routes - this folder would contain all the routes that you have created using Express Router and what they do would be exported from a Controller file;

    • services - contains such folders as emails and notifications.

  • Database: PostgreSQL


  • We offer 2 ways how to start the project locally: by running Frontend and Backend or with Docker.


    To start the project:

    Backend:

    Please change current folder: cd backend

    Install local dependencies:

    yarn install


    Adjust local db:

    1. Install postgres:

    MacOS:

    brew install postgres

    > if you don’t have ‘brew‘ please install it (https://brew.sh) and repeat step `brew install postgres`.
    

    Ubuntu:

    sudo apt update

    sudo apt install postgresql postgresql-contrib

    2. Create db and admin user:

    Before run and test connection, make sure you have created a database as described in the above configuration. You can use the psql command to create a user and database.

    psql postgres --u postgres

    Next, type this command for creating a new user with password then give access for creating the database.

    postgres-# CREATE ROLE admin WITH LOGIN PASSWORD 'admin_pass';

    postgres-# ALTER ROLE admin CREATEDB;

    Quit psql then log in again using the new user that previously created.

    postgres-# \q

    psql postgres -U admin

    Type this command to creating a new database.

    postgres=> CREATE DATABASE db_{your_project_name};

    Then give that new user privileges to the new database then quit the psql.

    postgres=> GRANT ALL PRIVILEGES ON DATABASE db_{your_project_name} TO admin;

    postgres=> \q


    Create database:

    yarn db:create

    Start production build:

    yarn start

    Frontend:

    Please change current folder: cd frontend

    To start the project with Docker:

    Description:

    The project contains the docker folder and the Dockerfile.

    The Dockerfile is used to Deploy the project to Google Cloud.

    The docker folder contains a couple of helper scripts:

    • docker-compose.yml (all our services: web, backend, db are described here)

    • start-backend.sh (starts backend, but only after the database)

    • wait-for-it.sh (imported from https://github.com/vishnubob/wait-for-it)

      To avoid breaking the application, we recommend you don't edit the following files: everything that includes the docker folder and Dokerfile.

    Run services:

    1. Install docker compose (https://docs.docker.com/compose/install/)

    2. Move to docker folder. All next steps should be done from this folder.

      cd docker

    3. Make executables from wait-for-it.sh and start-backend.sh:

      chmod +x start-backend.sh && chmod +x wait-for-it.sh

    4. Download dependend projects for services.

    5. Review the docker-compose.yml file. Make sure that all services have Dockerfiles. Only db service doesn't require a Dockerfile.

    6. Make sure you have needed ports (see them in ports) available on your local machine.

    7. Start services:

      7.1. With an empty database rm -rf data && docker-compose up

      7.2. With a stored (from previus runs) database data docker-compose up

    8. Check http://localhost:3000

    9. Stop services:

      9.1. Just press Ctr+C

    Most common errors:

    1. connection refused

      There could be many reasons, but the most common are:

    • The port is not open on the destination machine.

    • The port is open on the destination machine, but its backlog of pending connections is full.

    • A firewall between the client and server is blocking access (also check local firewalls).

    After checking for firewalls and that the port is open, use telnet to connect to the IP/port to test connectivity. This removes any potential issues from your application.

    MacOS:

    If you suspect that your SSH service might be down, you can run this command to find out:

    sudo service ssh status

    If the command line returns a status of down, then you’ve likely found the reason behind your connectivity error.

    Ubuntu:

    Sometimes a connection refused error can also indicate that there is an IP address conflict on your network. You can search for possible IP conflicts by running:

    arp-scan -I eth0 -l | grep <ipaddress>

    arp-scan -I eth0 -l | grep <ipaddress>

    and

    arping <ipaddress>

    1. yarn db:create creates database with the assembled tables (on MacOS with Postgres database)

      The workaround - put the next commands to your Postgres database terminal:

      DROP SCHEMA public CASCADE;

      CREATE SCHEMA public;

      GRANT ALL ON SCHEMA public TO postgres;

      GRANT ALL ON SCHEMA public TO public;

      Afterwards, continue to start your project in the backend directory by running:

      yarn start

    Top categories

    Loading Svelte Themes