Git Product home page Git Product logo

romanmunar / express-sessions-react-typescript-starter Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 456 KB

A starter kit for developing modern web apps with a full auth system. Features reset password, email verification, session store with redis.

Shell 1.02% JavaScript 1.46% HTML 20.42% CSS 2.02% TypeScript 75.07%
oauth oauth2 passport-google passport-github expressjs typescript nodejs mongodb mongoosejs redis

express-sessions-react-typescript-starter's Introduction

NodeJS Typescript Mongo Boilerplate

This is a starter kit for developing modern web apps with a full auth system. Features reset password, email verification, session store with redis. Also, a react client is configured to showcase how to use it with the backend. A vue/angular client is currently on the roadmap. If you can contribute on said frameworks, feel free to open a PR.


Roadmap

xxx Name When
CRUD to mongodb
Auth Session with redis
Middleware System
Error Handling
File Upload
OAuth Github & Google
Email April 6
Containerize with Docker April 8
Absolute timeout on Sessions April 9
Reset Password April 9
Start prompt with chalk April 9
Auth Retry Limit How to implement ?
Database Seed with Faker After retry & reset
Logger Unsure if will do
E2E tests Soon
Separate ROOT from backend Soon
Husky setup After root is seperated
Frontend sample usage endpoints After husky setup
Transfer from joi to zod Frontend is done

TechStack

Typescript front to back

  • ReactJS
  • NodeJS
    • Express
    • MongoDB
  • Joi for input validation

Features

  • Complete MongoDB Auth System (Reset password, Email verification, Sessions)
  • Husky (Lint-staged,Eslint) setup
  • Typescript Full stack
  • Docker Services
  • Sessions with Redis
  • Schema Validation using Joi
  • OAuth with github and google

Run Locally

Requirements

  • NodeJS
  • Docker
  • Yarn(preferred)/NPM

Backend

  1. Run git clone https://github.com/romanmunar/express-sessions-react-typescript-starter
  2. Run cd express-sessions-react-typescript-starter and Run yarn
  3. Install packages on backend cd ./backend, Run yarn
  4. While installing, Fill up the .env.example file with your own creds.(avoid changing the ports)
  5. Run yarn up to start the docker services
  6. Run yarn dev to run nodemon and watch tsc

Client

  1. Open a new terminal and cd ../react-client
  2. Install packages on client, run yarn
  3. Run yarn dev to start the dev server
  4. Open browser to a

express-sessions-react-typescript-starter's People

Contributors

romanmunar avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.