All Projects → tg970 → PERN-Advanced-Starter

tg970 / PERN-Advanced-Starter

Licence: MIT license
Advanced PERN stack starter kit (PostgresSQL, Express, React, & Node), complete with ESLint, Webpack 4, Redux, React-Router, and Material-UI kit.

Programming Languages

javascript
184084 projects - #8 most used programming language
SCSS
7915 projects

Projects that are alternatives of or similar to PERN-Advanced-Starter

rapid-react
A light weight interactive CLI Automation Tool 🛠️ for rapid scaffolding of tailored React apps with Create React App under the hood.
Stars: ✭ 73 (+43.14%)
Mutual labels:  react-router, react-redux, react-router-dom
Tonzhon Music
将QQ音乐、网易云音乐和酷我音乐上的歌添加到一个列表来播放!
Stars: ✭ 257 (+403.92%)
Mutual labels:  react-router, react-redux, webpack4
boilerplate-react-redux-pwa
It's sample boilerplate with pwa + react + redux + redux-saga
Stars: ✭ 14 (-72.55%)
Mutual labels:  react-redux, babel-es6, webpack4
react-you-do-you
How I use React + Redux + Material-UI + TypeScript – you do you 💖
Stars: ✭ 103 (+101.96%)
Mutual labels:  material-ui, react-redux
React-Playground
Learning reactjs from the ground up (router, redux, thunk, hooks, context, portals, and functional components)
Stars: ✭ 15 (-70.59%)
Mutual labels:  react-router, react-redux
cnode-react
a web app for cnode.org with react + react-router + react-redux
Stars: ✭ 23 (-54.9%)
Mutual labels:  react-router, react-redux
awesome-web-react
🚀 Awesome Web Based React 🚀 Develop online with React!
Stars: ✭ 31 (-39.22%)
Mutual labels:  react-router, react-redux
react-demo
一个实际项目(OA系统)中的部分功能。这个demo中引入了数据库,数据库使用了mongodb。安装mongodb才能运行完整的功能
Stars: ✭ 92 (+80.39%)
Mutual labels:  react-router, react-redux
best-of-react
🏆 A ranked list of awesome React open-source libraries and tools. Updated weekly.
Stars: ✭ 364 (+613.73%)
Mutual labels:  material-ui, react-redux
OpenTrivia
Multiplayer quiz game demo using React and Opentdb API
Stars: ✭ 47 (-7.84%)
Mutual labels:  react-router, react-redux
react-cheat-sheet
📚 The perfect React Cheat Sheet for daily use with a lot of Javascript / JSX snippets !
Stars: ✭ 59 (+15.69%)
Mutual labels:  react-router, react-redux
react-laravel
A simple crud based laravel app to learn how to use react with laravel.
Stars: ✭ 43 (-15.69%)
Mutual labels:  react-router, react-redux
realestate
A simple real estate app build with MEAN( Angular, Node and mongoDb ) and MERN( React, Node and mongoDb )
Stars: ✭ 33 (-35.29%)
Mutual labels:  react-router, react-router-dom
rgxp
Regular Expression Collection (ReactJS, Redux, React Router, Recompose, NodeJS, Express)
Stars: ✭ 62 (+21.57%)
Mutual labels:  react-router, react-redux
ts-react-boilerplate
A very opinionated (React/TypeScript/Redux/etc) frontend boilerplate
Stars: ✭ 43 (-15.69%)
Mutual labels:  react-router, react-redux
Questions
Web app inspired by Quora, allowing users ask question and get answers
Stars: ✭ 15 (-70.59%)
Mutual labels:  react-router, react-redux
Frontend
마음을 잇는 현명한 소비 '잇다'🤝
Stars: ✭ 19 (-62.75%)
Mutual labels:  react-router, material-ui
React Cnodejs.org
Material UI version of cnodejs.org, the biggest Node.js Chinese community.
Stars: ✭ 242 (+374.51%)
Mutual labels:  react-router, material-ui
spring-boot-react-ecommerce-app
eCommerce application based on the microservices architecture built using Spring Boot and ReactJS.
Stars: ✭ 221 (+333.33%)
Mutual labels:  react-router, react-redux
kugou
multiple implementations for kugou music
Stars: ✭ 25 (-50.98%)
Mutual labels:  react-router, react-redux

Known Vulnerabilities

PERN-Advanced-Starter

The PERN stack: PostgresSQL, Express, React, & Node

Live example: PERN-Starter

What makes this an advanced starter app you ask? This project folds together several tools that come together for a powerful dev environment and good start for a fully functional production application. It employs an 'advanced' implementation of pg-promise for interaction with a SQL database with additional basic security concerns added to the Express server.

Here's a list of the other fun bits folded into this project:

  • ESLint: Style guide, syntax, and developer error finder and enforcer
  • Webpack: Static module bundler, complier, & hot-reloader
  • Redux: Predictable state container/manager for JavaScript apps
  • React-Router: “Dynamic Routing” (navigation) for React client
  • React Material UI: Component library implementing Google's Material Design
  • Material-UI Kit: Curated mid-level component library complete with view examples
  • Axios: Promise based HTTP client for the browser and node.js

Using this project

First, make sure you have have PostgreSQL installed and running. Visit the PostgreSQL home page for more info and to download the install file.

Open a terminal window and create a new PG database:

$ createdb PERN-Starter

Then to get going using this starter app, first fork the repo:

fork

Then clone the fork to your local machine:

$ git clone https://github.com/*YOUR-USERNAME-HERE*/PERN-Advanced-Starter.git

Why fork? That way you can make your own changes, save them to github, and even share them with the main fork.

Hop into the project directory and install the dependencies:

$ cd PERN-Advanced-Starter
$ npm i

audit report If you have npm v6+ installed and notice there were more than 0 vulnerabilities are found, run: npm audit fix

This is a constant battle: check your dependencies regularly and update them. More about npm's audit functionality here.

To start the Webpack dev server run:

$ npm run dev

And to build for deployment/production run:

$ npm run build
$ npm start

Also don't forget that your API won't work unless you create a users table.

Does this look familiar? no tables

To do this hit the following route, either in your browser or with Postman.

http://localhost:3000/api/users/create

Successful return: null

If you want to seed use:

http://localhost:3000/api/users/init

Successful return: id's

And if you don't have it: json formatter for chrome.

What's happening under the hood

pg-promise: Read up on it.

Other Config files:

.babelrc - Babel is a toolchain used by Webpack to convert ECMAScript 2015+ code into a backwards compatible version of JavaScript for old browsers or environments. This file tells Babel our presets and plugins.

.eslintrc.json - This config file tells ESLint our settings for interpreting and reporting errors and warnings while we're writing our code. Delete or add rules, change style guide, whatever you want, this is where you do it. For this to work you'll need to make sure you have a linter and eslint installed in your code editor.

nodemon.json - When Webpack spins up a dev server it also starts nodemon in the background to proxy for api calls. This file tells nodemon which directory to watch for changes and restart when files are updated.

.webpack.config.js - Oh the magic of Webpack! This file gives Webpack all the important details for doing what it does. Again this file is configurable; for more information visit the configuration docs.

How did we get here?

There are so many resources out there to help developers resolve issues and build new skills and tools. I'm very thankful for the sharing of knowledge and I wanted to put this project together to help other devs that are hoping to try their hand at a full-stack React application.

This starter app was inspired and guided by the following resources:

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].