nano-app v3.0.1
Node App
nano-app is a command-line application, here you can easily create your node.js project structure.
Installation
Install my-project with npm
  npx nano-app my-project
  cd my-projectIt will create a directory called my-project inside the current folder. Inside that directory, it will generate the initial project structure and install the transitive dependencies:
my-project
├── package.json
├── package-lock.json
├── .prettierrc
├── .prettierignore
├── .gitignore
├── .env.production
├── .env.development
├── .babelrc
├── node_modules
└── src
    ├── config
        ├── cloudinary.js
        ├── database.js
        ├── passport.js
        └── sendEmail.js
    ├── controllers
        └── authController.js
    ├── middlewares
        ├── authorizedUser.js
        └── google.js
    ├── models
        ├── auditLogs.js
        ├── userRoleMaps.js
        ├── users.js
        └── validations.js
    ├── routes
        ├── authRouter.js
        └── router.js
    ├── utils
        ├── errors
            └── globalErrorHandler.js
        ├── responses
            ├── sendData.js
            ├── sendMessage.js
            └── sendResponse.js
        ├── templates
            ├── forgotMail.js
            └── signUpMail.js
        ├── createJWT.js
        └── createMFA.js
    ├── app.js
    └── server.jsFeatures
- ES6+ configuration (Babel)
 - Better error handling
 - Clean code structure
 - Google authentication (Passport strategy)
 - Email authentication with OTP verification (Sent mail using Google Gmail)
 - Implement MFA using speakeasy
 - MFA QR code images stored in Cloudinary
 - Forgot Password via mail
 - Modern data validation using Joi
 - Forgot password mail template
 - OTP validation mail template
 
Environment Variables
To run this project, you will need to add the following environment variables to your .env.development (Development mode) or .env.production (Production mode) file
DB_NAMEDB_USERDB_PASSHOSTSCHEMA
If you want to store MFA QR code at Cloudinary
CLOUD_NAMECLOUD_KEYCLOUD_SECRET
If you want to use google login Google console
GOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRETGOOGLE_CALLBACK_URL
If you want to use email verification
EMAILEMAIL_PASS(App password)
API Reference
Google Log In
  Redirect /api/v1/auth/googleFor google login you need to set your FrontEnd URL at .env.development or .env.production FRONT_END
Sign Up
  POST /api/v1/auth/signup| Body | Type | Description | 
|---|---|---|
f_name | string | Required. Your first name | 
l_name | string | Required. Your last name | 
email | string | Required. Your email | 
phone | string | Required. Your phone number | 
password | string | Required. Your password | 
Sign In
  POST /api/v1/auth/signin| Body | Type | Description | 
|---|---|---|
email | string | Required. Your email | 
password | string | Required. Your password | 
Resent OTP
  POST /api/v1/auth/resent-otp| Body | Type | Description | 
|---|---|---|
email | string | Required. Your email | 
Verify OTP
  POST /api/v1/auth/verify-otp| Body | Type | Description | 
|---|---|---|
email | string | Required. Your email | 
otp | string | Required. Your otp | 
Verify MFA
  POST /api/v1/auth/verify-mfa| Body | Type | Description | 
|---|---|---|
id | int | Required. Your user id | 
token | string | Required. Your mfa token | 
Forgot Password
  POST /api/v1/auth/forgot-password| Body | Type | Description | 
|---|---|---|
email | string | Required. Your email | 
Reset Password
  POST /api/v1/auth/reset-password| Body | Type | Description | 
|---|---|---|
reset_link | string | Required. Reset link | 
password | string | Required. Your password | 
Get Profile
  GET /api/v1/auth/profile| Parameter | Type | Description | 
|---|---|---|
Authorization | string | Required. Your JWT token | 
Run Locally
Install dependencies
  npm installStart the server
  npm run devDeployment
To deploy this project run
  npm run startUsage/Examples
npx nano-app api


Demo
Insert gif or link to demo
Tech Stack
Server: Node, Express
Authors
Feedback
If you have any feedback, please reach out to us at morolswediu@gmail.com
Support
For support, email morolswediu@gmail.com
License
If you like, Give a star ⭐
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago