/fullerstack

Monorepo for FullerStack

Primary LanguageTypeScriptMIT LicenseMIT

Fullerstack

status-image coverage-image

Description

This project is a mono-repo for FullerStack which is an open source dashboard powered by Angular for the frontend and NestJs for the backend.

Mission

To create an open source dashboard from the ground-up. Quality of Experience is the ultimate mission, and that includes simplicity, elegance, quality and performance. Designed for the future, but built for today!

Elegance in simplicity

Screenshots: (screenshots) // Demo: ( avidtrader.co )


Features

  • Quality of Experience and Security First
  • Built-in Auth & Auth (Authentication & Authorization)
    • Powered by JWT (Auth & Access)
    • Fully Stateless
    • Permissions (Roles / Actions)
  • Translations
    • Internationalization (i18n)
    • Localization (i10n)
    • Left2Right, Right2Left Support
  • GraphQL
    • Frontend & Backend
  • PubSub
    • RxJS (Subscription, Push)
    • Fully reactive
  • Full SQL Support
    • PostgresQL as the 1st class citizen
  • Dark Mode Support
  • Fullscreen
  • Geo Location Support
    • Geo Fencing
    • IP address filtering (by: proxy count, proxy nodes, public only, best matched)
  • ...Etc

The mono-repo was created via Nrwl/Nx.

npx create-nx-workspace fullerstack

Powered By

Publishable Libraries

Supported Platforms

  • Browsers (Angular)
  • Desktop (Electron)
  • Mobile (NativeScript, Ionic)

Legends

Libraries

  • AG = Agnostic (not target specific, node &| browser)
    • AGX = Node/Browser Library
  • BA = Browser Framework/Library Agnostic (not framework/library specific, browser-only)
    • BAX = Browser Library
  • NA = Node Application Agnostic (not application specific, node-only)
    • NAX = Node Library
  • NG = Angular
    • NGX = Angular Library
  • NS = Nest
    • NSX = NestJs Library

Applications

Applications

  • appname = Web (Chrome, Firefox, Safari, Edge, etc)
  • appname-el = Desktop (Electron Application - Linux, MacOS, Windows)
  • appname-ns = NativeScript (Android, iOS)
  • appname-ic = Ionic (Android, iOS)

Applications (End2End)

  • appname-e2e = Web (Chrome, Firefox, Safari, Edge, etc)
  • appname-el-e2e = Desktop (Electron Application - Linux, MacOS, Windows)
  • appname-ns-e2e = NativeScript (Android, iOS)
  • appname-ic-e2e = Ionic (Android, iOS)

Instruction (for developers)

Installation

# Clone the repo
git clone https://github.com/neekware/fullerstack.git

# Install the dependencies
cd fullerstack
yarn install

# Create a database (postgres) for the angular app
createdb avidtrader

# Copy environment variables and update
cp env.example .env

# Migrate the database
yarn prisma:migrate:dev

# Seed your database
yarn prisma:seed

# Start the backend (in terminal #1)
yarn start:api

# Start the frontend (in terminal #2)
yarn start:avidtrader

# Visit frontend (on mac use open, on windows, just type it in)
open http://localhost:4200

# Signup / Login and take the site for a spin
# Note superuser account is set in your .env (refer to AUTH_SUPERUSER_EMAIL, AUTH_SUPERUSER_PASSWORD)

Development (lint, test, build, format)

# Webpack analyzer
yarn nx build avidtrader --stats-json --prod && yarn stats

# Format changed files
yarn format:all

#  Lint CI
yarn lint:ci

#  Test CI
yarn test:ci

#  Test build
yarn build:ci

Dependency Graph

Visual confirmation of your system architecture, and prevent circular dependencies via eslint

# Graph dependencies on a branch
# More: https://nx.dev/latest/angular/cli/affected-dep-graph

yarn affected:dep-graph --base=<branch-name> --head=HEAD

License

  • Released under a (MIT) license.

Version

X.Y.Z Version

`MAJOR` version -- making incompatible API changes
`MINOR` version -- adding functionality in a backwards-compatible manner
`PATCH` version -- making backwards-compatible bug fixes

Lines of Code (auto-generated stats)

 Language             Files        Lines        Blank      Comment         Code
--------------------------------------------------------------------------------
 TypeScript             386        21489         2431         3964        15094
 JSON                   176         5014            0            0         5014
 Markdown               104         2976          759            0         2217
 HTML                    33         1453          114            5         1334
 Sass                    55         1449          140           35         1274
 JavaScript              35          700           23           48          629
 CSS                      1           96            7            0           89
 Plain Text               5           94           10            0           84
 SQL                      2           88           17           16           55
 Toml                     1            3            0            2            1
--------------------------------------------------------------------------------
 Total                  798        33362         3501         4070        25791
--------------------------------------------------------------------------------

Sponsors

[ Neekware Inc. ] [ Nx ]