Skip to content

quockhanhtn/mern-ecommerce

Repository files navigation

Khoá luận tốt nghiệp - chuyên ngành Công nghệ phần mềm

  • Đề tài: Website bán điện thoại và phụ kiện dùng MERN stack
  • Giáo viên hướng dẫn: TS. Huỳnh Xuân Phụng
  • Sinh viên:
    • Hồ Huy Hoàng. MSSV: 18110284. Lớp đại trà
    • Lâm Quốc Khánh. MSSV: 18110304. Lớp đại trà

Hướng dẫn cài đặt

Yêu cầu

Server api

  • Mở command line (terminal) tại thư mục server

  • Dùng lệnh sau để cài đặt các package trong project

    npm install

  • Chuẩn bị các biến môi trường như sau

    Tên biến Bắt buộc Mô tả Mặc định
    PORT Port để listen (lắng nghe) server api 3001
    MONGO_URI Connection string để kết nối tới MongoDb
    JWT_SECRET Khóa bí mật (secret key), dùng trong Json Web token
    JWT_EXPIRES_IN Thời gian có hiệu lực của jsonWebToken. VD: 15m, 1d, 30d ...
    JWT_REFRESH_EXPIRES_IN Thời gian có hiệu lực của refreshToken. VD: 15d, 30d ...
    VNPAY_SECRET VNpay Secret
    VNPAY_TMN_CODE VNPay TMN Code
    VNPAY_URL VNPay Url
    FIREBASE_PROJECT_ID Firebase project Id
    FIREBASE_PRIVATE_KEY Firebase private key
    FIREBASE_CLIENT_EMAIL Firebase client email
  • Có thể tạo file nodemon.json trong thư mục server với nội dung như sau:

     "env": {
     	"PORT": "3001",
     	"MONGO_URI": "mongodb://localhost:27017/cellphones",
     	"JWT_SECRET": "S3cr3tK3y",
     	"JWT_EXPIRES_IN": "7d",
     	"JWT_REFRESH_EXPIRES_IN": "30d",
     	"VNPAY_SECRET": "OVOALYVDSIREXCICBCAANMFTAEDVNNCV",
     	"VNPAY_TMN_CODE": "QL509E3K",
     	"VNPAY_URL": "https://sandbox.vnpayment.vn/paymentv2/vpcpay.html",
     	"FIREBASE_PROJECT_ID": "fb-pro-10",
     	"FIREBASE_PRIVATE_KEY": "-----BEGIN PRIVATE KEY-----\n{YOUR_KEY}==\n-----END PRIVATE KEY-----\n",
     	"FIREBASE_CLIENT_EMAIL": "firebase-adminsdk-@fb-pro-10.iam.gserviceaccount.com"
     }
  • Dùng lệnh để chạy server với các biến trong file nodemon.json

    npm run dev

  • Dùng lệnh sau để chạy server ở môi trường production, các biến môi trường cần phải được setup riêng, không dùng file nodemon.json

    npm run start

Client app

  • Mở command line (terminal) tại thư mục client

  • Dùng lệnh sau để cài đặt các package trong project

    npm ci

  • Tạo file .env trong thư mục client với các biến sau

    Tên biến Bắt buộc Mô tả Mặc định
    PORT Port để listen (lắng nghe) client app 3000
    REACT_APP_API_BASE_URL Base URL của api http://localhost:3001/api/v1
    REACT_APP_FIREBASE_CONFIG Firebase config (*)

    (*) REACT_APP_FIREBASE_CONFIG có dạng chuỗi được JSON.stringify từ object config

    Ví dụ:

     objectConfig = {
     "databaseURL": "gs://fb-pro-10.appspot.com",
     "apiKey": "xxx",
     "authDomain": "fb-pro-10.firebaseapp.com",
     "projectId": "fb-pro-10",
     "storageBucket": "fb-pro-10.appspot.com",
     "messagingSenderId": "111",
     "appId": "1:11:web:abcd",
     "measurementId": "G-HJJH"
     }

    => REACT_APP_FIREBASE_CONFIG={"databaseURL":"gs://fb-pro-10.appspot.com","apiKey":"xxx","authDomain":"fb-pro-10.firebaseapp.com","projectId":"fb-pro-10","storageBucket":"fb-pro-10.appspot.com","messagingSenderId":"111","appId":"1:11:web:abcd","measurementId":"G-HJJH"}

  • Dùng lệnh sau để build ứng dụng

    npm run build

  • Cài đặt thư viện serve và chạy app

    npm install -g serve

    serve -d build



Tài liệu



Readme.md in English version # [Under construction] eCommerce website for Cellphones and accessories store

Overview

  • Technical: MERN Stack (MongoDB Express React NodeJs)
  • Subject: Essay on software engineering (Tiểu luận chuyên ngành Công nghệ phần mềm - Hệ đại trà).
  • Instructor: PhD. Phung Huynh Xuan
  • Authors:
    • Hoang Ho Huy <@hohuyhoangg>
    • Khanh Lam Quoc <@quockhanhtn>


Documents (in Vietnamese)



Project Structure

project
├── docs   (Document of project)
├── client (Frontend using React JS)
├── server (Backend using Node with Express library and MongoDB for database)