Giter VIP home page Giter VIP logo

app's Introduction

๐Ÿดโ€โ˜ ๏ธ piratepx

A simple, privacy-respecting, no cookie, zero JavaScript, 35 byte counter pixel for websites, mobile apps, server-side APIs, CLIs, and just about anywhere else.

Sign up for free at https://www.piratepx.com! piratepx

Overview

This repository contains both the backend and frontend of the app to simplify development and deployment. Other than a few lines of configuration here and there to make this possible, however, they're pretty much separate codebases.

Backend

The backend is a JSON REST API built in Node.js using Fastify and Objection.js. It persists data to a PostgreSQL database.

The source code is located in the api directory, with configuration files in the root of this repository (where this README lives).

Frontend

The frontend is a single-page app built with Vue.js and Tailwind CSS.

The source code is fully isolated in the web directory, which is also where its own configuration files are located.

Development

The following includes the necessary steps to get the full app setup for development, with a focus on backend-specific details. See web/README.md for frontend-specific details.

Prerequisites

Docker Compose is used to run PostgreSQL as configured in docker-compose.yml. Once installed, simply run:

$ docker-compose up

The app itself is not run in a Docker container in development, as it's easy enough to install the necessary version of Node.js with nvm:

$ nvm install

Dependencies

Install dependencies with npm:

$ npm install
$ cd web && npm install

Config

dotenv is used to load environment variables from a .env file into process.env. This file is ignored by version control to prevent committing secrets.

See .env.dist for an example.

Database

Create

Ensure PostgreSQL is running, then:

$ npm run dev:db:create

Migrations

Knex.js is used to manage database migrations, which are located in api/db/migrations.

To run the latest migrations:

$ npm run knex migrate:latest

Start

Start both the backend and frontend development servers:

$ npm run dev

Code Style & Linting

Prettier is setup to enforce a consistent code style. It's highly recommended to add an integration to your editor that automatically formats on save.

ESLint is setup with the "recommended" rules to enforce a level of code quality. It's also highly recommended to add an integration to your editor that automatically formats on save.

To run via the command line:

$ npm run lint

Releasing

After development is done in the development branch and is ready for release, it should be merged into the master branch, where the latest release code lives. Release It! is then used to interactively orchestrate the release process:

$ npm run release

app's People

Contributors

jstayton avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.