This project aims to maintain a monorepo codebase to make the development of any project using Node, React, React-Native, GraphQL, TypeScript and MongoDB more agile.
- OOP
- Interface
Principles of Integrity: Ensure that the Schema GraphQL is well defined, stable and consistent.
Unique GraphQL Schema - The company must have a unified GraphQL Schema, instead of one per team.
Shared implementation - The implementation of GraphQL Schema must be shared between teams / teams.
Track the Schema in Records - There must be a single true source to track the GraphQL Schema.
Principles of Agility: Distribute and adapt quickly to necessary changes.
Abstract and Demand-Oriented Schema - The schema should act as an abstraction layer that provides flexibility to consumers, hiding the details of the implementation.
Agile approach to the development of Schemas - The scheme must be built incrementally based on real requirements and evolve over time.
Iteratively improve performance - Performance management should be an ongoing process, adapting to changes in query loads and service implementations.
Use Metadata to Empower Developers - Developers must have knowledge of the GraphQL API throughout the development process.
Operating Principles: Safely implement the GraphQL API for production.
Demand Access and Control - Grant access by customer and manage what and how they can access it.
Structured Log - Capture structured logs of all operations and take advantage of them as a tool to understand the use of the GraphQL API.
Separate the GraphQL Layer from the Service Layer - Adopt a layered architecture with the functionality of the GraphQL API on a separate layer, instead of being incorporated into all services.
Packages | Version |
---|---|
Prettier | |
Eslint |
Packages | Version |
---|---|
React | |
React DOM |
Packages | Version |
---|---|
React | |
React Native |
Packages | Version |
---|---|
TS-node-dev | |
Colors | |
Bcryptjs | |
Express | |
ClassValidator | |
TypeGraphQL | |
TypeScript | |
ApolloServer | |
GraphQL | |
Jest | |
Mongoose |
node --version
npm install -g yarn
yarn -version
npm install -g typescript
tsc --version
Clone the repo and use yarn
to install dependecies
git clone https://github.com/georgebezerra/codebasemonorepo.git
cd codebasemonorepo
yarn
Start server
cd packages/server
yarn dev:server
Start Web
cd packages/web
yarn start
Start Mobile
cd packages/mobo
yarn start
This project is open-source software licensed under the GNU General Public License v3.0
Development by
Developer / Author: George Bezerra