Skip to content

justin3737/universeWalls-api

 
 

Repository files navigation

Meta Wall

GitHub commit activity (branch) GitHub Repo stars GitHub contributors GitHub forks


Image

Metawall 是一個旨在將社交體驗推向更高層次的平台,將 Instagram 和 Facebook 的魅力融入其中,為您帶來前所未有的交流樂趣。

連結 Link

Built With

core

Vue.js Express Socket.io MongoDB AWS

plugins

Doppler Imgur Passport Google Discord Facebook Line

功能說明

Image

登入頁

Image

動態牆

Image

收藏貼文

Image

修改個人檔案

忘記密碼gif (1)

忘記密碼

2rThA9kOye

Google, LINE, Discord, Facebook

第三方登入

CMwqxJzdwE

藍新金流

Watch the video 一般聊天功能示範

Watch the video 上傳圖片功能

Chat

For Developer:

使用技術

  • node.js
  • express
  • mongoDB
  • JWT
  • Imgur
  • Google第三方登入
  • AWS

執行指令

//開發環境
npm run dev

//正式機環境
npm run prod

//Swagger開發文件
npm run swagger

//執行ESlint格式化
npm run format

建立專案和引入套件

  • (1) 切換 Node.js 版本:nvm use v16.14.0
  • (2) 建立專案:express --no-view [專案]
  • (3) 引入模組:npm install
  • (4) 安裝套件:npm i mongoose dotenv cors bcryptjs validator jsonwebtoken imgur tslib image-size multer express-rate-limit -s
  • (5) package.json 自訂指令、部署 AWS / Heroku
  • (6) 加入 .gitignore、config.env、example.env 檔案

專案結構

├── connections           // 負責與資料庫連接
├── controller            // 處理 HTTP 請求的控制器
├── log                   // 存放日誌的資料夾
├── middleware            // 中間件,用於處理請求和回應
├── models                // 用於描述 mongoDB 的數據模型
├── routes                // 定義 HTTP 路由
├── socket                // 處理 socket.io 的相關功能
│   ├── controller        // 處理 socket 的控制器
│   ├── middleware        // 處理 socket 的中間件
│   ├── repositories      // 處理 socket 的資料存儲
│   ├── response          // 處理 socket 的回應格式
│   ├── services          // 處理 socket 的服務邏輯
│   └── utils             // 處理 socket 的工具函數
└── utils                 // 存放共用的工具函數

AWS 架構圖

image

  • DNS:透過 Cloudflare 做DNS轉址的設定與取得免費的SSL/TLS憑證做更安全的HTTPS連線。
  • 前端:把Vue3的程式碼部署在AWS S3 靜態儲存庫
  • 後端:把Node.js API 部署在AWS EB 容器內,在環境執行起的時候,會自動起一個EC2 instance。
  • 資料庫:MongoDB Atlas

貢獻 Contributors

Made with contrib.rocks.

About

node.js 直播最終 api 作業

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 91.3%
  • HTML 4.2%
  • EJS 3.2%
  • Other 1.3%