1. Server Architecture
2. Project Dependencies
3. Project Structure
- @line/bot-sdk: The LINE Messaging API SDK for nodejs makes it easy to develop bots.
- bcryptjs: Optimized bcrypt in JavaScript with zero dependencies.
- body-parser: Node.js body parsing middleware.
- crypto-js: JavaScript library of crypto standards.
- express: Fast, unopinionated, minimalist web framework for node.
- googleapis: Node.js client library for using Google APIs. Support for authorization and authentication with OAuth 2.0, API Keys and JWT tokens is included.
- jsonwebtoken: An implementation of JSON Web Tokens.
- lodash: The Lodash library exported as Node.js modules.
- moment: Lightweight JavaScript date library for parsing, validating, manipulating, and formatting dates.
- mongodb: Official MongoDB driver for Node.js.
- mongoose: MongoDB object modeling tool designed to work in an asynchronous environment. Mongoose supports both promises and callbacks.
- mongoose-transactions: Atomicity and Transactions for mongoose.
- multer: Node.js middleware for handling multipart/form-data, which is primarily used for uploading files.
- nodemailer: Send e-mails from Node.js.
- pdfmake: PDF document generation library for server-side and client-side usage in pure JavaScript.
- request: Request is designed to be the simplest way possible to make http calls
- validator: A library of string validators and sanitizers.
server
├── config
│ ├── config.js
│ └── config.json
├── controllers
│ ├── contract-api.js
│ ├── customer-api.js
│ ├── line-api.js
│ ├── parking-area-api.js
│ ├── parking-lot-api.js
│ ├── payment-api.js
│ ├── poster-api.js
│ ├── report-api.js
│ └── user-api.js
├── email
│ └── email-service.js
├── line
│ └── line-controller.js
├── middleware
│ ├── authenticate-admin.js
│ ├── authenticate.js
│ ├── contract-active.js
│ ├── customer-delete.js
│ ├── parking-area-delete.js
│ ├── parking-lot-available.js
│ ├── parking-lot-delete.js
│ ├── payment-contract-active.js
│ └── poster-exists.js
├── models
│ ├── contract.js
│ ├── customer.js
│ ├── line-token.js
│ ├── login-token.js
│ ├── parking-area.js
│ ├── parking-lot.js
│ ├── password-token.js
│ ├── payment.js
│ ├── poster.js
│ ├── user-auth.js
│ └── user.js
├── multer
│ └── poster-image-upload.js
├── reports
│ └── table-template.js
├── routes
│ ├── contract-routes.js
│ ├── customer-routes.js
│ ├── line-routes.js
│ ├── parking-area-routes.js
│ ├── parking-lot-routes.js
│ ├── payment-routes.js
│ ├── poster-routes.js
│ ├── report-routes.js
│ ├── routes.js
│ └── user-routes.js
├── server.js
├── test
│ └── test.js
├── uploads
└── util
├── captcha.js
└── utility.js