An easiest web app template on top of nest, TypeORM, Next.js and Material UI.
- Database synchronization with entities - powered by TypeORM
- Server Side Rendering - powered by Next.js
- API server - powered by nest
- User authentication - powered by Passport
- Material UI design
- Environment viriables using dotenv
- Lang
- TypeScript - Javascript that scales
- Database
- PostgreSQL - The World's Most Advanced Open Source Relational Database
- ORM (Object-relational mapping)
- TypeORM - ORM for TypeScript and JavaScript (ES7, ES6, ES5)
- Server
- Environment variables
- dotenv - Loads environment variables from .env for nodejs projects
- User authentication
- Passport - Simple, unobtrusive authentication for Node.js
- UI framework
- React - A JavaScript library for building user interfaces
- Next.js - The React Framework
- Material UI - React components that implement Google's Material Design.
# install database (postgresql)
$ brew install postgresql
# if you want to start postgresql in startup, try do this
$ brew services start postgresql
# create user "arkuser" with password "arkark"
$ createuser -P arkuser
# create database "arkdb" owened by "arkuser"
$ createdb arkdb -O arkuser
# install dependencies
$ yarn
# development mode
# please make sure to create the `.env` file!
$ yarn dev
# production mode
# please make sure to create the `.next/.env` file!
$ yarn build
$ yarn start
- Security: environment variables
- Database: auto synchronization with entities
- Server: integration between nest and Next.js
- API: define JSON API routes (if needed)
- UI: integration between Next.js and Material UI
- UI: top page
- UI: user profile page
- Auth: passport-local (email & password)
- Auth: passport-github2 (GitHub login)
- Auth: passport-twitter (Twitter login)
- Test: unit tests
- Test: e2e tests