All Projects → TvrboPro → Tvrboreact

TvrboPro / Tvrboreact

Dream starter project: React, Redux, React Router, Webpack

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Tvrboreact

TvrboReact
Dream starter project: React, Redux, React Router, Webpack
Stars: ✭ 13 (+0%)
Mutual labels:  mocha, mongoose, decorators, expressjs, starter, chai, jwt-authentication, nodemailer, react-router-v4
pothole detection
By using this app users can report the potholes on road by clicking a photo via our app and if a pothole is detected by Machine Learning modal then it is saved to our Database from where officials can view the specifics like location,reported by and official can resolve the request.User are notified by email for every update regarding their request
Stars: ✭ 17 (+30.77%)
Mutual labels:  mongoose, expressjs, jwt-authentication, nodemailer
Node Express Mongodb Jwt Rest Api Skeleton
This is a basic API REST skeleton written on JavaScript using async/await. Great for building a starter web API for your front-end (Android, iOS, Vue, react, angular, or anything that can consume an API). Demo of frontend in VueJS here: https://github.com/davellanedam/vue-skeleton-mvp
Stars: ✭ 603 (+4538.46%)
Mutual labels:  mongoose, jwt-authentication, mocha, chai
express-mongo-jwt-boilerplate
Express Mongo JsonWebToken boilerplate
Stars: ✭ 100 (+669.23%)
Mutual labels:  mongoose, expressjs, jwt-authentication
React Progressive Web App
An opinionated React based repository which is optimized for Progressive Web App development.
Stars: ✭ 548 (+4115.38%)
Mutual labels:  webpack, mocha, chai
node-server-template
This is Node.js server tidy template / boilerplate with Express (with asyncified handlers, custom error handler) framework and MongoDb. The server use ES6 and above. On different branches you can see different techniques' and technologies' usage, such as Kafka, nodemailer, file download... You also can find postman collections.
Stars: ✭ 116 (+792.31%)
Mutual labels:  mocha, mongoose, nodemailer
typijs
The Angular CMS Framework for building fully-featured SPA sites powered by NodeJS and MongoDB with TypeScript
Stars: ✭ 141 (+984.62%)
Mutual labels:  mongoose, decorators, expressjs
Natours
An awesome tour booking web app written in NodeJS, Express, MongoDB 🗽
Stars: ✭ 94 (+623.08%)
Mutual labels:  mongoose, expressjs, nodemailer
api-skel
Webpack + Typescript + Express + Jest + Chai + Gulp
Stars: ✭ 18 (+38.46%)
Mutual labels:  mocha, expressjs, chai
express-mysql-rest
Building the simple api with sequelize, mysql and express js. this repository contains the code about how to use sequelize with mysql at express js. for example i have provide the crud operation to this repository. You can also testing the api with chai and mocha with chai-http by this repository
Stars: ✭ 25 (+92.31%)
Mutual labels:  mocha, expressjs, chai
react-redux-immutable-webpack-ssr-starter
React + React-Router 4 + Redux + ImmutableJS + Bootstrap + webpack 3 with with Server side rendering, Hot Reload and redux-devtools STARTER
Stars: ✭ 21 (+61.54%)
Mutual labels:  mocha, starter, chai
task-manager
Task Manager App
Stars: ✭ 19 (+46.15%)
Mutual labels:  mongoose, expressjs, jwt-authentication
arc
Fullstack open source Invoicing application made with MongoDB, Express, React & Nodejs (MERN)
Stars: ✭ 1,291 (+9830.77%)
Mutual labels:  mongoose, jwt-authentication, nodemailer
Quora
Building An Exclusive Community of PEC Graduates and Students.The main features of the website are “PEC Quora” and “PEC Connect”
Stars: ✭ 26 (+100%)
Mutual labels:  mongoose, expressjs, jwt-authentication
Pharmacy-Mangment-System
👨‍💻 🏥 MEAN stack Pharmacy Management system.
Stars: ✭ 229 (+1661.54%)
Mutual labels:  mongoose, jwt-authentication, nodemailer
Feathers Vue
A boiler plate template using Feathers with Email Verification, Vue 2 with Server Side Rendering, stylus, scss, jade, babel, webpack, ES 6-8, login form, user authorization, and SEO
Stars: ✭ 195 (+1400%)
Mutual labels:  webpack, mongoose, mocha
Karma Webpack Example
Karma + Webpack + Mocha + Chai + Istanbul
Stars: ✭ 88 (+576.92%)
Mutual labels:  webpack, mocha, chai
Universal React Redux
🧐 A sensible universal starter kit for React + Redux
Stars: ✭ 112 (+761.54%)
Mutual labels:  webpack, expressjs, react-router-v4
BotBlock.org
BotBlock - The List of Discord Bot Lists and Services
Stars: ✭ 29 (+123.08%)
Mutual labels:  mocha, expressjs, chai
node-express-mongo-passport-jwt-typescript
A Node.js back end web application with REST API, user JWT authentication and MongoDB data storage using TypeScript
Stars: ✭ 51 (+292.31%)
Mutual labels:  mongoose, expressjs, jwt-authentication

TvrboReact

Features

TvrboReact is a clean, concise and powerful ReactJS starter project. It features the state of the art technologies from the React ecosystem, providing support for:

  • React
  • Redux + Redux Thunk
  • React Router 4 (with scroll history management)
  • Webpack 4
  • Webpack Dev Server
  • Web Sockets
  • Server side rendering
  • Streamed rendering
  • React Hot Loader
  • Mocha
  • Session management (Cookies + JSON Web Tokens)
  • Babel (ES7, JSX, decorators, async/await)
  • ESLint
  • Prettier
  • ExpressJS
  • Mongoose
  • Nodemailer
  • PM2
  • makefile (development and server tasks)

TvrboReact provides a rich foundation to build ReactJS applications featuring server-side rendering, session management, stream rendering, ODM, hot reloading, code linting, and more.

Getting Started

Requirements

Make sure you have NodeJS 8.11.1 or newer installed.

brew install node

Make also sure that MongoDB is installed and running.

Clone the Repository

Clone this repository into your computer.

You should now be able to run make info and see the full list of commands available to you.

Install the dependences

make install

This will also perform an initial build. To import initial data into the database, run:

make populate

Live development

make dev

Then, go to http://localhost:8080 in your browser and start developing with live reload/react hot loading!

Production build

make build

Will package all the assets into the public folder.

make run

Will start the app and serve whatever is in the public folder. Stop it by hitting Ctrl+C. This is a good way to check the real performance of your app in production conditions.

App management (in a server)

You may want to use a process management tool like PM2.

Edit process.json5 to set your project name, execution mode, etc. Four utility tasks are defined:

make start
make reload
make restart
make stop

Coding

Decorators

To access content in your Redux stores, connect your React components

@connect({ entries, coins } => { entries, coins })
class MyView extends Component {
	...
}

If a component uses Route, Switch or any route-aware component from React Router:

@withRouter
class MyView extends Component {
	...
}

If you were to use both, leave @withRouter as the first decorator.

Configuration

Even if Webpack performs Tree Shaking on ES6 modules, it may not be a good idea to use a single config file for the server and the client. That's why both are split into separate files and must be included accordingly.

Server only code may import app/config/server.js and app/config/client.js and use any of its values.

However, files bundled by Webpack should only import values from app/config/client. Otherwise, execution will throw an error to prevent that you bundle and leak any API keys or other secret data.

Usage:

import config from 'app/config/server';
// ...
console.log(config.HTTP_PORT);


import appConfig from 'app/config/client';
// ...
console.log(appConfig.APP_NAME);

Defaults

  • In development, Webpack Dev Server exposes the port 8080, acting as a proxy to the NodeJS server (port 3000)
  • Otherwise, NodeJS listens on port 8080 when you start it with make run

Testing

Run make test and let the magic happen. This will provide you detailed information in case of failure. To get a cleaner summary, you may run make check instead.

Utilities

  • You can use test/populate.js to add your code for sample data creation in your database. Run it with make populate.
  • You can use test/wipe.js to clean any data in your local database and repopulate it again. Use make wipe for this.

Project structure

app
	api               >  Implement here the API handlers to interact with the database
	config            >  Client/server settings
	lib
		actions.js      >  Action creators
		api.js          >  Client side api wrappers
		session.js      >  Manage user sessions (check login, decode payload, etc)
		intervals.js    >  Recurring tasks can be initialized here
		...             (your own utilities)

	mail              >  Mailing utilities with built-in image attachments
	media             >  Media files that will be copied to 'public/media' on run
	models            >  Your Mongoose data models
	reducers          >  Implement the logic to create new states upon actions
	store             >  Redux store creation and composition
	styles            >  Provide styling for your components
	views             >  JSX components intended to be used as pages
	widgets           >  Smaller JSX components intended for encapsulation and reuse

	app-template.js   >  Generates the HTML template (used when server rendering)
	app.jsx           >  The root component (define your main routes here)
	client.jsx        >  The entry point of the client render
	server.jsx        >  The entry point of the server render
	socket.js         >  Attaches the WebSocket server to the app handler

test
	index.js           >  The test runner
	tests              >  Write your own tests here
	populate.js        >  (Utility) Populate sample content (DB)
	wipe.js            >  (Utility) Remove DB contents

index.js             >  The start script for the server
makefile             >  Tasks definition
process.json5        >  PM2 config file
webpack.*.config.js  >  Webpack development and production settings

public               >  Folder where everything is packaged and served from

Deploy to Heroku

To deploy the app to Heroku, follow these steps:

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