Skip to content

Commit

Permalink
🎉 Squash all the commit separated in each repo to make a monorepo for…
Browse files Browse the repository at this point in the history
… MFE
  • Loading branch information
hylerrix committed Nov 26, 2022
1 parent 0778d4d commit 56ef8a7
Show file tree
Hide file tree
Showing 271 changed files with 90,133 additions and 2 deletions.
Empty file added .gitignore
Empty file.
58 changes: 56 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,56 @@
# ningowood
A brand new "Micro-Frontend Tools" oriented Metaverse space. For Web 3.0 we created.
# [Ningowood](http://ningowood), a brand new "Micro-Frontend Tools" oriented Metaverse space. For Web 3.0 we created.

![](./public/static/showcase-20221126.webp)

## Why we are here

Through every day deep immerse in the Cyberized Internet, so many data we meet and create, but it still got the situation that so separated everywhere. And combine with the real world, for example, how many the Games we brought in physics, when is the last time we go to Hospital, how to plan my future by tracking every thing just happened...?

Yes, there already have some awesome tool to track all data by your own (AirTable is what I really like), and both have an brilliant API workflow to communicate with other tools. But except you must track them manually(which u must define the data struction one by one) and painfully(the data relations is so hard to link about globally), you still got the final big question, where should all the data landing?

## What we will do in the future

> Thanks to Single SPA and the Micro Frontend ecosystem, we now have the sights and ability to build so many micro-app in one page for your comfortably usage.
* Use different common model (Time | Quantity | Cost | Location | People | Notes..) to track any entities you want (Games | Films & Open Source Communities…).
* Share with others: the game-time u laughed with your friend, the social-time u just learn from others and even the food you just cooked for your lover, anything you track can directly share to others, and stored in her/his own database (Datas can sync with each other related and can have Open API auth to anywhere u want to use)!
* No-Code Editor and even powerful Canvas to draw, or build any workflow you want for your own data.
* Powerful community work for you every-time: Following the Official API, any of we can create any micro-tools, and then published directly to your target users.
* Using the leading-edge techniques, build and find every data relations for you.
* Change any UI you like. Even the official Login UI, navbar UI, whereever you see about, you can change it to another and share with others. Powered by Headless UI, Single SPA and more to build this plugin System.
* Abundance 3rd part API, because we are not autistic to code. AirTable, Notion, Strapi, IMDB, LetterboxD, GOG, Steam, Github, Zapier, Dropbox... and more to come.
* And finally, all the data belongs to you. You can choose where to store (in Cloud or in your Own Computer). Export to any format like Excel, PPT, and more!

## Development togehter

> Group is just beginning, welcome your contribute!
* Git clone this monorepo
* Independently install node_modules in both microfrontends/apps* and microbackends/apps*
* Before `be-root` repo start, run PostgreSQL in your machine first.
* Then,
* Any question new, please discusstion in this repo or contact the community by joining the group (See below).

## Open Source, or charge?

Open source is the most important way where we study all the leading-edge technique knowledege. We don't want to leave it. When the Open Source is controlling this Software World, so many open source project earned what they deserved. Let's see where we can get.

## Metaverse is not died, long live with the XR experience.

JavaScript is everywhere, build it in XR is just the beginning for our world.

## Contact

* Discord Group: https://discord.gg/YeZQ8fegmq
* Wechat Personal: hylerrix
* Wechat Official Account: ningowood
* For more idea about this repo , directly message to me: [email protected].

## Notice

1. This is a very first demo preview of Ningowood. After online registration, ur data starts to be collected in the Ningo Cloud. Register with ur real email to receive further updates! (Only email will remain in the first stable release.)
2. Introduction about Ningowood will continuing writing in this place. Functionality updates about Ningowood will continuing pushing to this repo. Don't forget to back to this sweety home any time u want!

## License

MIT for now.
7 changes: 7 additions & 0 deletions microbackends/be-root/.env.demo
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Environment variables declared in this file are automatically made available to Prisma.
# See the documentation for more detail: https://pris.ly/d/prisma-schema#accessing-environment-variables-from-the-schema

# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB.
# See the documentation for all the connection string options: https://pris.ly/d/connection-strings

DATABASE_URL="postgresql://user:password@localhost:port/database?schema=schema"
25 changes: 25 additions & 0 deletions microbackends/be-root/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
module.exports = {
parser: '@typescript-eslint/parser',
parserOptions: {
project: 'tsconfig.json',
tsconfigRootDir : __dirname,
sourceType: 'module',
},
plugins: ['@typescript-eslint/eslint-plugin'],
extends: [
'plugin:@typescript-eslint/recommended',
'plugin:prettier/recommended',
],
root: true,
env: {
node: true,
jest: true,
},
ignorePatterns: ['.eslintrc.js'],
rules: {
'@typescript-eslint/interface-name-prefix': 'off',
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-explicit-any': 'off',
},
};
37 changes: 37 additions & 0 deletions microbackends/be-root/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# compiled output
/dist
/node_modules

# Logs
logs
*.log
npm-debug.log*
pnpm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# OS
.DS_Store

# Tests
/coverage
/.nyc_output

# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace

# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json

.env
4 changes: 4 additions & 0 deletions microbackends/be-root/.prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"singleQuote": true,
"trailingComma": "all"
}
73 changes: 73 additions & 0 deletions microbackends/be-root/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
<p align="center">
<a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="200" alt="Nest Logo" /></a>
</p>

[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456
[circleci-url]: https://circleci.com/gh/nestjs/nest

<p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p>
<p align="center">
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/common.svg" alt="NPM Downloads" /></a>
<a href="https://circleci.com/gh/nestjs/nest" target="_blank"><img src="https://img.shields.io/circleci/build/github/nestjs/nest/master" alt="CircleCI" /></a>
<a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9" alt="Coverage" /></a>
<a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
<a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
<a href="https://paypal.me/kamilmysliwiec" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg"/></a>
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg" alt="Support us"></a>
<a href="https://twitter.com/nestframework" target="_blank"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow"></a>
</p>
<!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)
[![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->

## Description

[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.

## Installation

```bash
$ npm install
```

## Running the app

```bash
# development
$ npm run start

# watch mode
$ npm run start:dev

# production mode
$ npm run start:prod
```

## Test

```bash
# unit tests
$ npm run test

# e2e tests
$ npm run test:e2e

# test coverage
$ npm run test:cov
```

## Support

Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).

## Stay in touch

- Author - [Kamil Myśliwiec](https://kamilmysliwiec.com)
- Website - [https://nestjs.com](https://nestjs.com/)
- Twitter - [@nestframework](https://twitter.com/nestframework)

## License

Nest is [MIT licensed](LICENSE).
5 changes: 5 additions & 0 deletions microbackends/be-root/nest-cli.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"$schema": "https://json.schemastore.org/nest-cli",
"collection": "@nestjs/schematics",
"sourceRoot": "src"
}
82 changes: 82 additions & 0 deletions microbackends/be-root/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
{
"name": "be-root",
"version": "0.1.0",
"description": "",
"author": "",
"private": true,
"license": "UNLICENSED",
"scripts": {
"prebuild": "rimraf dist",
"build": "nest build",
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
"dev": "yarn start",
"start": "nest start --watch",
"start:dev": "nest start --watch",
"start:debug": "nest start --debug --watch",
"start:prod": "node dist/main",
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
"test": "jest",
"test:watch": "jest --watch",
"test:cov": "jest --coverage",
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
"test:e2e": "jest --config ./test/jest-e2e.json"
},
"dependencies": {
"@nestjs/common": "^9.0.0",
"@nestjs/core": "^9.0.0",
"@nestjs/jwt": "^9.0.0",
"@nestjs/passport": "^9.0.0",
"@nestjs/platform-express": "^9.0.0",
"@nestjs/swagger": "^6.1.3",
"@prisma/client": "^4.6.1",
"passport": "^0.6.0",
"passport-jwt": "^4.0.0",
"passport-local": "^1.0.0",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"rxjs": "^7.2.0"
},
"devDependencies": {
"@nestjs/cli": "^9.0.0",
"@nestjs/schematics": "^9.0.0",
"@nestjs/testing": "^9.0.0",
"@types/express": "^4.17.13",
"@types/jest": "28.1.8",
"@types/node": "^16.0.0",
"@types/passport-jwt": "^3.0.7",
"@types/passport-local": "^1.0.34",
"@types/supertest": "^2.0.11",
"@typescript-eslint/eslint-plugin": "^5.0.0",
"@typescript-eslint/parser": "^5.0.0",
"eslint": "^8.0.1",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-prettier": "^4.0.0",
"jest": "28.1.3",
"prettier": "^2.3.2",
"prisma": "^4.6.1",
"source-map-support": "^0.5.20",
"supertest": "^6.1.3",
"ts-jest": "28.0.8",
"ts-loader": "^9.2.3",
"ts-node": "^10.0.0",
"tsconfig-paths": "4.1.0",
"typescript": "^4.7.4"
},
"jest": {
"moduleFileExtensions": [
"js",
"json",
"ts"
],
"rootDir": "src",
"testRegex": ".*\\.spec\\.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"collectCoverageFrom": [
"**/*.(t|j)s"
],
"coverageDirectory": "../coverage",
"testEnvironment": "node"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
-- CreateTable
CREATE TABLE "User" (
"id" SERIAL NOT NULL,
"username" TEXT NOT NULL,
"email" TEXT NOT NULL,
"password" TEXT NOT NULL,
"is_active" BOOLEAN DEFAULT true,
"created_time" TIMESTAMP(3) NOT NULL,
"updated_time" TIMESTAMP(3) NOT NULL,
"remark" TEXT,

CONSTRAINT "User_pkey" PRIMARY KEY ("id")
);

-- CreateTable
CREATE TABLE "Timeline" (
"id" SERIAL NOT NULL,
"start_time" TIMESTAMP(3) NOT NULL,
"duration" INTEGER,
"userId" INTEGER,
"created_time" TIMESTAMP(3) NOT NULL,
"updated_time" TIMESTAMP(3) NOT NULL,
"remark" TEXT,

CONSTRAINT "Timeline_pkey" PRIMARY KEY ("id")
);

-- CreateTable
CREATE TABLE "GamePackage" (
"id" SERIAL NOT NULL,
"name" TEXT NOT NULL,
"platform" TEXT NOT NULL,
"timelineId" INTEGER,
"created_time" TIMESTAMP(3) NOT NULL,
"updated_time" TIMESTAMP(3) NOT NULL,
"remark" TEXT,

CONSTRAINT "GamePackage_pkey" PRIMARY KEY ("id")
);

-- CreateIndex
CREATE UNIQUE INDEX "User_username_key" ON "User"("username");

-- CreateIndex
CREATE UNIQUE INDEX "User_email_key" ON "User"("email");

-- AddForeignKey
ALTER TABLE "Timeline" ADD CONSTRAINT "Timeline_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE "GamePackage" ADD CONSTRAINT "GamePackage_timelineId_fkey" FOREIGN KEY ("timelineId") REFERENCES "Timeline"("id") ON DELETE SET NULL ON UPDATE CASCADE;
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
-- AlterTable
ALTER TABLE "GamePackage" ALTER COLUMN "created_time" DROP NOT NULL,
ALTER COLUMN "updated_time" DROP NOT NULL;

-- AlterTable
ALTER TABLE "Timeline" ALTER COLUMN "created_time" DROP NOT NULL,
ALTER COLUMN "updated_time" DROP NOT NULL;

-- AlterTable
ALTER TABLE "User" ALTER COLUMN "created_time" DROP NOT NULL,
ALTER COLUMN "updated_time" DROP NOT NULL;
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
-- AlterTable
ALTER TABLE "GamePackage" ALTER COLUMN "created_time" SET DATA TYPE TEXT,
ALTER COLUMN "updated_time" SET DATA TYPE TEXT;

-- AlterTable
ALTER TABLE "Timeline" ALTER COLUMN "start_time" SET DATA TYPE TEXT,
ALTER COLUMN "created_time" SET DATA TYPE TEXT,
ALTER COLUMN "updated_time" SET DATA TYPE TEXT;

-- AlterTable
ALTER TABLE "User" ALTER COLUMN "created_time" SET DATA TYPE TEXT,
ALTER COLUMN "updated_time" SET DATA TYPE TEXT;
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/*
Warnings:
- You are about to drop the column `timelineId` on the `GamePackage` table. All the data in the column will be lost.
- You are about to drop the column `userId` on the `Timeline` table. All the data in the column will be lost.
*/
-- DropForeignKey
ALTER TABLE "GamePackage" DROP CONSTRAINT "GamePackage_timelineId_fkey";

-- DropForeignKey
ALTER TABLE "Timeline" DROP CONSTRAINT "Timeline_userId_fkey";

-- AlterTable
ALTER TABLE "GamePackage" DROP COLUMN "timelineId",
ALTER COLUMN "platform" DROP NOT NULL;

-- AlterTable
ALTER TABLE "Timeline" DROP COLUMN "userId";
Loading

0 comments on commit 56ef8a7

Please sign in to comment.