TAAFT
Free mode
100% free
Freemium
Free Trial
Deals

Motivation :star:

karanpratapsingh / fullstack-starterkit

GraphQL first full-stack starter kit with Node, React. Powered by TypeScript

1,184 99 Language: TypeScript License: MIT Updated: 4mo ago

README

fullstack-starterkit

PRs welcome! Twitter: karan_6864 ### Motivation :star: Setting up boiler plates when starting new projects is tedious sometimes and I often found myself setting it up from scratch ๐Ÿฅฑ Hence I made this starterkit following some of the best patterns and practices I learnt from some of the larger codebase and fantastic developers I've had a chance to work with ๐Ÿ™Œ The main purpose of this repository is to provide a scalable "batteries included" full stack starterkit which follows good architecture patterns (might be opinionated) and code decoupling which becomes significant as the project grows or new developers are onboarded #### Features - **All in Typescript** Because TypeScript is awesome, and types are important ๐Ÿ˜ƒ - **GraphQL First** This starterkit is built with graphql first approach using the [Apollo](https://www.apollographql.com/) platform - **Includes CI** CI is integral part of any project. This starterkit includes `Github Actions` by default. PR's for integration with any other providers are welcome ๐Ÿ™Œ - **Docker Support** You can also use docker to develop and run your applications - **Testing Focused** This project uses [Jest](https://jestjs.io/) for testing framework and comes with sample tests which are easy to extend - **Prisma** [Prisma](https://www.prisma.io/) is the ORM being used for [PostgreSQL](https://www.postgresql.org/). Feel free to submit a PR for any other ORM or drivers you'd like to see here ๐Ÿ˜ - **PWA Support** This starterkit comes with out of the box PWA support **Please leave a :star: as motivation if you liked the idea :smile:** ### :rocket: Technologies Used technologies ### ๐Ÿ“– Contents - [Architecture](#architecture) - [Backend](#backend) - [Web](#web) - [Getting started](#getting-started) - [How to Contribute](#how-to-contribute) - [License](#license) ### Video Overview Here's a brief video overview of this project, hope it helps. [![Full Stack Starterkit Overview](http://img.youtube.com/vi/TgtUhEnW8O4/0.jpg)](http://www.youtube.com/watch?v=TgtUhEnW8O4 "Full Stack Starterkit Overview") Big thanks to [@mikestaub](https://twitter.com/mikestaub) for mentoring me on the lot of the ideas you will come across in this repository. Checkout how he's changing social media with [Peapods](https://peapods.com) ### ๐Ÿญ Architecture #### Backend Here is the folder structure for `backend`, it is using `yarn workspaces` which helps us split our monorepo into packages such as DB, GraphQL. Which if required can be made into their own micro services. ``` backend โ”œโ”€โ”€ build โ”œโ”€โ”€ config โ”œโ”€โ”€ logs โ”œโ”€โ”€ packages โ”‚ โ”œโ”€โ”€ db โ”‚ โ”‚ โ””โ”€โ”€prisma โ”‚ โ”œโ”€โ”€ graphql โ”‚ โ”‚ โ”œโ”€โ”€ api โ”‚ โ”‚ โ”œโ”€โ”€ schema โ”‚ โ”‚ โ””โ”€โ”€ types โ”‚ โ””โ”€โ”€ utils โ”œโ”€โ”€ tests โ”‚ โ”œโ”€โ”€ db โ”‚ โ””โ”€โ”€ graphql โ”œโ”€โ”€ index.ts โ””โ”€โ”€ package.json ``` ##### DB This workspace package contains the database abstractions. The database stack is [PostgreSQL](https://www.postgresql.org/) as relational database and [Prisma](https://www.prisma.io/) as an ORM, read more about DB package [here](./backend/packages/db/README.md) ##### GraphQL The GraphQL package is organized as below: ``` graphql โ”œโ”€โ”€ schema โ”‚ โ””โ”€โ”€ user

<p style="margin: 0px 10px;">
<a href="mailto:[email protected]">๐Ÿ’ผ Hire Me</a> |
<a href="https://www.paypal.me/karanpratapsingh">๐Ÿบ Donate</a>
</p>
</p>

0 AIs selected
Clear selection
#
Name
Task