Skip to content

FullStack Typescript Monorepo, using NPM workspaces. Prisma + NodeJS + React + MUI

License

Notifications You must be signed in to change notification settings

Zenoo/fullstack-typescript-monorepo

Folders and files

NameName
Last commit message
Last commit date
Dec 19, 2022
Jan 12, 2023
Jun 10, 2024
Jul 25, 2023
Jul 25, 2023
Jun 10, 2024
Dec 18, 2022
Dec 18, 2022
Dec 18, 2022
Jul 25, 2023
Jul 25, 2023
Dec 18, 2022
Jun 11, 2024
Jun 21, 2024
Jul 25, 2023
Dec 20, 2022
Dec 20, 2022
Dec 19, 2022
Dec 18, 2022

Repository files navigation

Backend

Made with Node.js, Express, Prisma, written in Typescript.

Frontend

Made with MUI's components, React and create-react-app.

How to use

  • Create a new project from this template

  • Install a local postgres database

  • Copy .env.sample to .env and adapt the variables

  • Install dependencies: npm i (This should also setup your database from the schema.prisma file and the migrations)

  • Start both the server and the client with npm run dev

How to sync your database with your new Prisma schema

  • Run npm run db:sync:dev

How to seed your database

  • Edit server/prisma/seed.ts

  • Run npm run db:seed

Deployment

This project should deploy successfully as-is on Heroku

  • Set the environment variables

  • Install dependencies: npm ci (This should also setup your database from the schema.prisma file and the migrations)

  • Start the server with npm run start

Contributing

  • Fork the project

  • Make sure your NodeJS and npm versions are up to date

  • Copy .env.sample to .env and adapt the database URL

  • Install dependencies: npm i (This should also setup your database from the schema.prisma file and the migrations)

  • Start both the server and the client with npm run dev

  • Commit and push your changes

  • Create a pull request

Documentation

Every

  • Component
  • Method
  • Callback

Should have a corresponding documentation.

File Structure

├── client
│	├── build    			# Compiled frontend
│	├── public
│	│	├── i18n			# Folder containing all the translations
│	│	└── ...      		# Any other static file
│	└── src
│		├── components 		# Reusable components
│		├── hooks     		# React hooks
│		├── layouts    		# Layouts
│		├── theme     		# Theme variables
│		├── utils       	# Utility functions
│		└── views       	# Views
├── core 					# Shared ressourcs for both front and back end
│   ├── src              
├── prisma 					# Prisma types definitions for both front and back end
│   ├── src              
└── server 					# Back end
    ├── prisma              # DB
	└── src
	    ├── controllers     # Controllers
 	  	├── utils       	# Utility functions
	    └── ...