A NodeJS Fullstact Starter Pack project consists of :
- NodeJS with ExpressJS as backend
- NextJS React with ChakraUI as frontend
Backend: NodeJS, ExpressJS, Redis (for job queue), Sequelize, Handlebars (email templating)
Frontend: NextJS, React, ChakraUI
| Command | Remark |
|---|---|
| node shaka route:list | List all routes |
| node shaka make:controller | Create Backend's controller and route |
| npx sequelize db:migrate | Run pending migrations |
| npx sequelize db:migrate:schema:timestamps:add | Update migration table to have timestamps |
| npx sequelize db:migrate:status | List the status of all migrations |
| npx sequelize db:migrate:undo | Reverts a migration |
| npx sequelize db:migrate:undo:all | Revert all migrations ran |
| npx sequelize db:seed | Run specified seeder |
| npx sequelize db:seed:undo | Deletes data from the database |
| npx sequelize db:seed:all | Run every seeder |
| npx sequelize db:seed:undo:all | Deletes data from the database |
| npx sequelize db:create | Create database specified by configuration |
| npx sequelize db:drop | Drop database specified by configuration |
| npx sequelize init | Initializes project |
| npx sequelize init:config | Initializes configuration |
| npx sequelize init:migrations | Initializes migrations |
| npx sequelize init:models | Initializes models |
| npx sequelize init:seeders | Initializes seeders |
| npx sequelize migration:generate | Generates a new migration file |
| npx sequelize migration:create | Generates a new migration file |
| npx sequelize model:generate | Generates a model and its migration |
| npx sequelize model:create | Generates a model and its migration |
| npx sequelize seed:generate | Generates a new seed file |
| npx sequelize seed:create | Generates a new seed file |
- Light/dark mode toggle
- Login page
- Register page + verification email + verification page using 6 digits token
- Forget Password and reset it using 6 digits token
- Landing page
- Dashboard page
- Roles master data
- Permissions master data
- Permission matrix like Laravel Entrust , trust me I am Senior Laravel Developer :p
- User management
- Profile management
- TinyMCE Editor
- Autoload Models in backend, just put your model class in
backend/modelsand it can be called anywhere by callmodelnameModele.gnewsModel - Autoload Repositories in backend, just put your repository class in
backend/repositoriesand it can be called anywhere by callrepositoynameRepositorye.gnewsRepository - Autoload routing in backend, just put your repository class in
backend/routes/*/*and it can be called anywhere by call its path and name e.gbackend/routes/api/v2/userwill generates new endpoints (using plural word) called{URL}/api/v2/users/*
- Fork this project
- This project is not Dockerise yet, it has been being developed in NodeJS version 16.15.1 and NPM version 8.11
- Make sure you have active MySQL server and Redis
- To run sequelize, you need NPX in your end, kindly follow this tutorial to install sequelize-cli in your end
cd your-project-path
cd backend
cp .env.example .env
npm install
npx sequelize db:migrate
npx sequelize db:seed:all
npm run dev- Adjust the
.envvalues to meet your local environment - By default, backend will run in port 5000
- Default username is
aulia@aulia.comand its password ispassword123, you may add new users by editingbackend/seeders/20220519093017-roles-permissions-admin-user.cjs
cd your-project-path
cd frontend
cp .env.example .env
npm install
npm run dev- Adjust the
.envvalues to meet your local environment - By default, frontend will run in port 3000
- [Frontend] Add MFA page
- [Frontend & Backend] Add feature to sign in/up using Social Medias
- [Frontend & Backend] Dockerise them both, just to make sure that everything can runs well in your end
- [Backend] Enable Swagger UI to test API


