Skip to content

About

此為簡易推特專案(Simple Twitter)專用的一個後端 API 伺服器,提供類似 Twitter 的社群媒體服務功能,例如發佈推文、點讚、或是追隨等動作,主要使用技術包含 Node.js + Express + passport + bcryptjs + Sequelize。

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

簡易推特 API

Framework ORM Database

此為簡易推特專案(Simple Twitter)專用的一個後端 API 伺服器,提供類似 Twitter 的社群媒體服務功能,例如發佈推文、點讚、或是追隨等動作,主要使用技術包含 Node.js + Express + passport + bcryptjs + Sequelize。

注意: 簡易推特專案一共需要前端網頁以及後端API伺服器,而此 Github Repo 頁面為後端 Repo,如果要前往前端 Github Repo 的頁面,請看接下來的前後端協作資訊,裡面有前端 Github Repo 連結。

如果有想要試用我們的專案作品,可以透過這個README最下方的種子資料,直接登入到我們的 DEMO 網站:




功能描述

登入註冊

  • 一般使用者註冊
  • 一般使用者登入
  • 管理者登入

推文功能

  • 新增推文、或是回覆推文資訊
  • 查詢推文、以及推文回覆資訊
  • 可對推文點讚、收回點讚動作

使用者功能

  • 可修改自己的帳號密碼、或大頭貼、封面和簡介
  • 查詢使用者的詳細資料
  • 查詢使用者的推文歷史
  • 查詢使用者的按讚歷史
  • 查詢使用者的追蹤與被追隨名單

追隨功能

  • 可對其他使用者進行追隨
  • 可對其他使用者取消追隨

後台功能

  • 顯示所有使用者清單
  • 顯示所有推文清單
  • 刪除推文資訊


環境建置需求

  • Git
  • Node.js 10.24.1 或是 14.16.0
    • 注意: 強烈建議使用 14.16.0 版本,只是內部測試有做 10.24.1 的 backward compatibility test。
    • 下載連結
  • 終端機工具 Terminal、CMD、Git Bash
    • 注意: 只需要上述的終端機工具項目其中一個即可,但是如果您是使用 Windows 作業系統,我們非常建議使用 Git Bash。
    • Git Bash下載連結
  • MySQL Community Server 8.0.15
  • MySQL Workbench 8.0.15
    • 注意: 安裝 MySQL Community Server 時選擇同時安裝 Workbench。
  • Imgur 第三方雲端圖片分享服務商的 API Client ID


安裝步驟


  1. 請先確認本機已經達到環境建置需求裡面的所有需求項目。

  1. 打開終端機或是 Git Bash,下載Github的專案到本地主機。
git clone https://github.com/Richie-Yang/twitter-api-2020.git

  1. 進入本地專案資料夾。
cd twitter-api-2020

  1. 位於本地專案資料夾裡面,執行以下指令安裝必須套件。
npm install

  1. 位於本地專案資料夾裡面,建立 .env 檔案,以下提供兩種方式進行 .env 檔案設定:
    5-1. 方法一,本地測試可以直接使用 .env.example 內容進行 .env 檔案設定,但是IMGUR_CLIENT_ID 還是要自行補上資料。
    5-1. 方法二,或是參考下方檔案內容的環境變數說明,進行 .env 檔案的客製化。
PORT=<輸入指定伺服器通訊埠>
JWT_SECRET=<輸入自訂的加密使用私鑰>
IMGUR_CLIENT_ID=<輸入 Imgur 第三方圖片服務的 Client ID>

  1. 核對專案質料夾裡面的 config 資料夾,該資料夾裡面的 config.json 檔案,裡面有寫下本專案需要連接資料庫時的必要資訊,請核對以下資訊:
    6-1. 連線的 MySQL 資料庫 password 是否為 `"password"`,如果不是,請在以下的 password 欄位修改密碼。
    6-2. 連線的 MySQL 資料庫 IP address 是否為 `"127.0.0.1"`,如果不是,請在以下的 host 欄位修改 IP address。
{
  "development": {
    "username": "root",
    "password": "password",
    "database": "ac_twitter_workspace",
    "host": "127.0.0.1",
    "dialect": "mysql"
  }
  ...
}

  1. 在 MySQL Workbench 裡面先行建立資料庫。
    7-1. 須先確定 MySQL 服務已經啟動,並且透過 MySQL Workbench 可以成功登入資料庫。
    7-2. 在 MySQL Workbench 軟體裡面輸入以下 SQL 指令,並且點擊閃電圖示直接執行 SQL 指令。
CREATE DATABASE ac_twitter_workspace;

  1. 回到終端機畫面或是 Git Bash,輸入以下指令執行資料庫的遷徙檔案。
npx sequelize db:migrate

  1. 在終端機畫面上或是 Git Bash,輸入以下指令執行資料庫的種子檔案。
npx sequelize db:seed:all


啟動伺服器步驟

  1. 執行專案。 ( 伺服器啟動後會顯示 Example app listening on port ... )
npm run start
  1. 在到前台的頁面之前,請先確認以下的項目。
    2-1. 前台如果還沒建立,記得先到我們前台的 Github Repo 連結,依照前台 README.md 提供的步驟建立前台網站。
    2-2. 如果,你的前台和後台都是建立在同一台本機上,前台需要確定界接的 API 網址是否為 127.0.0.1:<指定伺服器通訊埠>
    2-3. 如果,你的前台和後台都是建立不同的主機上面,前台需要確定界接的 API 網址是否為 <後台主機 IP address>:<指定伺服器通訊埠>
    2-4. 承接 2-3 的情境,如果前台後台分別在不同主機上面,需要確認後台所屬主機的防火牆是否允許前台存取。
  1. 接著可以來到前台的頁面,使用以下種子帳號進行登入。


種子資料

  1. 一個管理員帳號密碼 (這個帳號只能使用於後台)
account: root
password: 12345678
  1. 五個使用者帳號密碼 (這個帳號只能使用於前台)
account: user1
password: 12345678
account: user2
password: 12345678
account: user3
password: 12345678
account: user4
password: 12345678
account: user5
password: 12345678


停止伺服器步驟

  1. 位於鍵盤上使用兩下 Ctrl + c,即可直接終止 API server 運作。


感謝,參與此次專案的協作者們,大家辛苦了!

組員 負責範圍 個人 Github 連結
Egg 前端 https://github.com/ChiaLine
罐子 Kuan 前端 https://github.com/Kanmurio406
Christine 前端 https://github.com/Christinnne
靜易 後端 https://github.com/z88243310
Richie 後端 https://github.com/Richie-Yang


更新時間 : 2021.03.03

About

此為簡易推特專案(Simple Twitter)專用的一個後端 API 伺服器,提供類似 Twitter 的社群媒體服務功能,例如發佈推文、點讚、或是追隨等動作,主要使用技術包含 Node.js + Express + passport + bcryptjs + Sequelize。

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages