Xem chi tiết
x2mint-backend
│ .gitignore
│ index.js
│ package-lock.json
│ package.json
│ Procfile
│ README.md
├───.vscode
│ settings.json
└───src
├───middleware
│ requireAuth.js
├───models
│ Account.js
│ Answer.js
│ Bill.js
│ Contest.js
│ enum.js
│ Question.js
│ TakeTest.js
│ TakeTestLogs.js
│ Test.js
│ User.js
├───routers
│ adminRoutes.js
│ answerRoutes.js
│ authRoutes.js
│ billRoutes.js
│ contestRoutes.js
│ paymentRoutes.js
│ questionRoutes.js
│ sendMail.js
│ takeTestRoutes.js
│ testRoutes.js
│ userRoutes.js
└───utils
SortObj.js
Timezone.js
- Bước 1: Clone project
git clone https://github.com/x2mint/x2mint-backend.git
- Bước 2: Install
Tại thư mục x2mint-backend
, mở terminal và gõ lệnh:
npm install
Hoặc:
yarn install
- Bước 3: Thêm file
.env
chứa thông tin các biến môi trường:
Tên biến | Mô tả |
---|---|
DB_URL | Connection string kết nối cơ sở dữ liệu MongoDB. |
REACT_APP_SECRET_HASH_KEY | Hash key bí mật |
REACT_APP_ACCESS_TOKEN_SECRET | Token bí mật |
REACT_APP_ACTIVATION_TOKEN_SECRET | Token kích hoạt |
REACT_APP_GOOGLE_CLIENT_ID | Google Client ID, đăng ký vào tạo mới project. Xem hướng dẫn chi tiết tại đây. |
REACT_APP_GOOGLE_SECRET_KEY | Key bí mật của ứng dụng Google. |
REACT_APP_MAILING_SERVICE_CLIENT_ID | Google Client ID dùng cho việc gửi mail. |
REACT_APP_MAILING_SERVICE_CLIENT_SECRET | Key bí mật của ứng dụng Google dùng cho việc gửi mail. |
REACT_APP_MAILING_SERVICE_REFRESH_TOKEN | Refresh token. |
REACT_APP_SENDER_EMAIL_ADDRESS | Tài khoản email của ứng dụng, dùng cho việc gửi mail thông báo đến người dùng. |
REACT_APP_VNP_TMNCODE | VNPay tmnCode , hướng dẫn chi tiết về tạo tài khoản thanh toán VNPay xem tại đây. |
REACT_APP_VNP_HASHSECRET | Mã hashSecret của VNPay. |
REACT_APP_VNP_URL | Endpoint gọi API thanh toán của VNPay, mặc định là: https://sandbox.vnpayment.vn/paymentv2/vpcpay.html . |
REACT_APP_VNP_EMAIL | Email tài khoản VNPay. |
REACT_APP_CLIENT_URL | Link domain của website, VD: http://x2mint.vercel.app . Lưu ý: không có dấu / ở cuối URL. |
REACT_APP_API_ROOT | App root endpoint, VD: http://api-x2mint.herokuapp.com/app/api/v1 . |
- Bước 4: Khởi chạy
Mặc định, server sẽ chạy tại cổng 5005
. Mở terminal và chạy lệnh sau:
npm run server
Kết quả:
> backend@1.0.0 server
> nodemon index
[nodemon] 2.0.15
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node index index.js`
Express server listening on port 5005 in development mode
Mongoose connected
Chạy lệnh sau để cập nhật file swagger-output.json
:
npm run swagger
Thông tin API sẽ được cập nhật trong file swagger-output.json
. Bạn có thể xem Swagger UI tại đường dẫn /doc
.
- Bước 1: Tạo tài khoản Heroku tại đây. Sau đó, tải và cài đặt Heroku CLI theo hướng dẫn tại đây.
- Bước 2: Tạo file
Procfile
tại thư mục gốc của project. Lưu ý file trên không có phần mở rộng file. Mở file lên và thêm vào nội dung như sau:
web: npm run server
Sau đó, push code lên master của Github repo.
- Bước 3: Tạo mới một ứng dụng trên Heroku (
<app_name>
) theo link này.- Bước 3.1: Đặt tên ứng dụng, sau đó bấm
Create app
. - Bước 3.2: Tại mục
Deployment method
, chọn Github để import. Lưu ý, tài khoản phải được kết nối với Github trước đó. - Bước 3.3: Nhập tên Github repo, bấm tìm kiếm. Repo tương ứng hiện ra thì chọn
Connect
để kết nối. - Bước 3.4: Bấm
Deploy branch
để bắt đầu deploy. Chờ quá trình deploy diễn ra thành công và thông báoYour app was successfully deployed
.
- Bước 3.1: Đặt tên ứng dụng, sau đó bấm
- Bước 4: Thêm biến môi trường cho ứng dụng.
- Bước 4.1: Tại thư mục gốc của project, mở terminal và chạy lệnh sau:
heroku plugins:install heroku-config
. Lưu ý: Bắt buộc đã cài đặt Heroku CLI trước đó. - Bước 4.2: Cập nhật biến môi trường cho ứng dụng Heroku:
- Bước 4.1: Tại thư mục gốc của project, mở terminal và chạy lệnh sau:
heroku config:push -a <app_name>
Trong đó, <app_name>
là tên ứng dụng trên Heroku. Ví dụ:
heroku config:push -a api-x2mint
- Bước 5: Deploy lại ứng dụng.