Skip to content

Fuller-Stack MonoRepo: TechStack: Angular, NestJS, GraphQL, REST, SCSS, Prisma, Jest, GitHub Workflows & NX

License

Notifications You must be signed in to change notification settings

neekware/fullerstack

Repository files navigation

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)


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 Types

Applications Names

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

Applications Names (End2End)

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

Instruction (for developers)

  • Use email for any security related issues
  • Use github issues for everything else
  • Respect the code of conduct which is: be respectful of others

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:avidtrader-api:migrate:dev

# Seed your database
yarn prisma:avidtrader-api:seed

# Start the backend (in terminal #1)
yarn start:avidtrader-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             419        22151         2450         4023        15678
 JSON                   175        12083            0            0        12083
 Markdown               105         2988          761            0         2227
 HTML                    33         1461          110            5         1346
 Sass                    54         1341          141           33         1167
 CSS                      1           96            7            0           89
 Plain Text               5           94           10            0           84
 JavaScript               3          119            5           38           76
 SQL                      2           88           17           16           55
 Toml                     1            3            0            2            1
--------------------------------------------------------------------------------
 Total                  798        40424         3501         4117        32806
--------------------------------------------------------------------------------

Sponsors

[ Neekware Inc. ] [ Nx ]

About

Fuller-Stack MonoRepo: TechStack: Angular, NestJS, GraphQL, REST, SCSS, Prisma, Jest, GitHub Workflows & NX

Resources

License

Stars

Watchers

Forks

Packages

No packages published