All Projects → tudorconstantin → Knests

tudorconstantin / Knests

Licence: mit
Full-stack boilerplate (project/hackathon starter) with Docker/NodeJS/Typescript/GraphQL/React/Material-UI

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects

Projects that are alternatives of or similar to Knests

Springboot Projects Fullstack
Spring Boot, JDBC, ORM, JPA, Hibernate, H2, MySQL, Oracle
Stars: ✭ 76 (-51.28%)
Mutual labels:  graphql, postgresql
Serverless Postgraphql
Serverless GraphQL endpoint for PostgresSQL using AWS, serverless and PostGraphQL
Stars: ✭ 105 (-32.69%)
Mutual labels:  graphql, postgresql
Open Bank Mark
A bank simulation application using mainly Clojure, which can be used to end-to-end test and show some graphs.
Stars: ✭ 81 (-48.08%)
Mutual labels:  graphql, postgresql
Rpg Boilerplate
Relay (React), Postgres, and Graphile (GraphQL): A Modern Frontend and API Boilerplate
Stars: ✭ 62 (-60.26%)
Mutual labels:  graphql, postgresql
Directus
Open-Source Data Platform 🐰 — Directus wraps any SQL database with a real-time GraphQL+REST API and an intuitive app for non-technical users.
Stars: ✭ 13,190 (+8355.13%)
Mutual labels:  graphql, postgresql
Cynthesize Frontend
Frontend written in Angular 7 and deployed GraphQL for Cynthesize. Development build: https://cynthesize-develop.netlify.com
Stars: ✭ 65 (-58.33%)
Mutual labels:  graphql, postgresql
Graphjin
GraphJin - Build APIs in 5 minutes with GraphQL. An instant GraphQL to SQL compiler.
Stars: ✭ 1,264 (+710.26%)
Mutual labels:  graphql, postgresql
K2
Koa2 API template with passport, GraphQL, flowtype, knex and more.
Stars: ✭ 44 (-71.79%)
Mutual labels:  graphql, postgresql
Deploy Strapi On Aws
Deploying a Strapi API on AWS (EC2 & RDS & S3)
Stars: ✭ 121 (-22.44%)
Mutual labels:  graphql, postgresql
Postgraphile
GraphQL is a new way of communicating with your server. It eliminates the problems of over- and under-fetching, incorporates strong data types, has built-in introspection, documentation and deprecation capabilities, and is implemented in many programming languages. This all leads to gloriously low-latency user experiences, better developer experiences, and much increased productivity. Because of all this, GraphQL is typically used as a replacement for (or companion to) RESTful API services.
Stars: ✭ 10,967 (+6930.13%)
Mutual labels:  graphql, postgresql
Next React Graphql Apollo boostrap
React + GraphQL + Next.js project architecture that I play with right now
Stars: ✭ 59 (-62.18%)
Mutual labels:  graphql, fullstack
Subzero Starter Kit
Starter Kit and tooling for authoring GraphQL/REST API backends with subZero
Stars: ✭ 136 (-12.82%)
Mutual labels:  graphql, postgresql
Starter
Opinionated SaaS quick-start with pre-built user account and organization system for full-stack application development in React, Node.js, GraphQL and PostgreSQL. Powered by PostGraphile, TypeScript, Apollo Client, Graphile Worker, Graphile Migrate, GraphQL Code Generator, Ant Design and Next.js
Stars: ✭ 1,082 (+593.59%)
Mutual labels:  graphql, postgresql
Spring Examples
SpringBoot Examples
Stars: ✭ 67 (-57.05%)
Mutual labels:  graphql, postgresql
Fullstack Apollo Express Postgresql Boilerplate
💥 A sophisticated GraphQL with Apollo, Express and PostgreSQL boilerplate project.
Stars: ✭ 1,079 (+591.67%)
Mutual labels:  postgresql, fullstack
Twist V2
A book review tool for Leanpub's Markdown Book Format
Stars: ✭ 82 (-47.44%)
Mutual labels:  graphql, postgresql
Postgraphile Nest
GraphQL (PostGraphile) module for Nest framework (node.js)
Stars: ✭ 43 (-72.44%)
Mutual labels:  graphql, postgresql
Tinder Clone
Fullstack Tinder app clone made with React/Ts/Nest
Stars: ✭ 43 (-72.44%)
Mutual labels:  graphql, postgresql
Next
Directus is a real-time API and App dashboard for managing SQL database content. 🐰
Stars: ✭ 111 (-28.85%)
Mutual labels:  graphql, postgresql
Giraffeql
🦒 Developer tool to visualize relational databases and export schemas for GraphQL API's.
Stars: ✭ 128 (-17.95%)
Mutual labels:  graphql, postgresql

The KNESTS Stack

The above libraries and frameworks are the best ones (in my opinion, of course) regarding my desires at the moment of starting this project.

It's just a simple (albeit huge) coincidence that 3 of them sound NEX-ish. It would've been a shame not to name the stack similarly.

I wanted a NodeJS/Typescript based stack that would:

  • Help me develop web apps as fast as possible
  • With the cool javascript technologies of the moment (the "moment" is 2020 - most probably a small part of 2020): Typescript, React with typescript and hooks, GraphQL, Material-UI.
  • While following as much as possible the good ideas from the NodeJS best practices.

About

If interested, read about the whys and the objectives of the Knests Stack on my blog.

How it looks

It contains the free admin dashboard theme from devias.io.

 "Simple Login with Email" Signup Dashboard Big Responsive Dashboard

Getting started

  • Clone this repo and cd into it

Only needed to be run first time:

$ docker network create traefik-public
$ docker network create knests-dev
`rm -rf client/dist && docker-compose -f docker-compose.yml -f docker-compose.dev.yml up --build -V --force-recreate`

Note: The rm -rf client/dist part is needed (for now, until we have a better solution) for deleting the files nextjs generates.

Go to http://localhost:8080/api/migrate to have the latest migrations applied. Go to http://localhost:8080/signup and create your first user.

Make it yours

Search and replace knests with your own project name and you'll have a project with:

  • /signup page and functionality
  • /login page and functionality
  • /admin/dashboard basic page, taken from devias.io

Debugging tips & tricks

  • You can run just a service from the stack (for example if you want to connect to DB from some external GUI client), you can do it like this: rm -rf client/dist/ && docker-compose -f docker-compose.yml -f docker-compose.dev.yml run --service-ports postgres - make sure you expose the service ports to the host using the ports directive

Docker & docker-compose cheatsheet

Docker image re-building from scratch

There are moments in the dev/test flow when the docker images need to be rebuilt (after installing new packages for example). AAdding the --build parameter to the docker-compose command will usually be enough. For example:

rm -rf client/dist/ && time docker-compose -f docker-compose.yml -f docker-compose.test.yml up --build --abort-on-container-exit --renew-anon-volumes --force-recreate

When that's not enough, try one of the things below.

Docker caching

Docker can be surprising at caching stuff. Caching anonymous volumes was totally unexpected for me.

Read the docs of all the commands that you intend to run on your systems, because these can and will have side effects on your systems!

Here are some commands that clear all kind of caches:

  • docker system prune - this might take a while, because it says it clears everything.
  • docker rmi $(docker image ls -a) - tries to remove all the local images.

Documentation

There is some frontend / backend documentation written so you can debug things more thoroughly when they don't go as expected.

Road map

[] Fullstack e2e testing using Playwright and code coverage generating for both UI and server. [] Create tutorials documenting the development flow using the Knests stack. [] Since this is hosted on Github, migrate the Gitlab CI/CD pipeline to Github actions and dockerhub registry. [] Deployment and hosting on Kubernetes (?) [] Internationalization (?) [] Other good ideas

Wanna Help?

  • Pick any task from the road map, develop it, document it and submit a Pull Request
  • Clone the repo, build something, see how it goes, come up with ideas on how to improve the overall development experience.
  • Review the code, send suggestions, fixes, etc.
  • Star the repo, share the articles, write yourself about it :)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].