https://docs.google.com/presentation/d/1l-QDZhFbLiBvt1dFvUvRyTf8vLIa4zIu7B3j7DUGfwE/edit # 講稿 各位好,我們是第3組 - Zen Booster 我們要介紹的專案是 名片機 - MEISHIcian MEISHIcian 是什麼呢?MEISHI ,出自日文的名片。而 MEISHIcian 則取至英文的魔法師,magicain的諧音,兩者放在一起則有「名片魔法師」的意思 可以看出這是跟名片相關的專案,至於具體內容這我們稍後介紹 先來介紹我們的團隊,Zen Booster 我是團隊的璟舜 Shun ,而另一外成員則是我的好哥們冠廷 Alex 名片機主要就是由我們兩人開發完成,而上面就是我們兩人所創造的名片, 現在,讓我們進入正題,談談名片機吧 名片機的起源很簡單,如果在座各位有使用過名片,或許可以試著思考以下問題 首先,手邊名片堆積成山,總是找不到想要的人 再來,一段時間未連絡,照著名片打過去卻發現到窗口不是辭職、就是負責人變了 最後,因為使用實體名片,導致有時候名片丟了就突然找不到人了 我們的 Baby,名片機就是為此而生的 名片機共有4個重點,創造、分享、管理、同步 1. 你想做一個可以交換的電子名片? 2. 你想要所有名片的資訊都能即時更新? 3. 你想要僅靠一台手機就能在商務場合交換名片? 口號:太棒了,名片機可以解決您的問題 這裡簡單較紹我們的網頁功能 首先是編輯器,所有名片都是在這裡製作 有了名片,接著是展示它的地方,也就是公開頁 再來,如果你收藏了別人的名片,那麼就需要管理它的管理頁 那如果,別人的職務變動了怎麼辦呢?這時候我們的訊息頁就登場了 而最後的最後,則是名片牆,一個可以讓你一窺其他人名片的地方 那介紹了這麼多,接下來就只接看看我們的Baby,名片機的本體吧 來到精美的首頁,可以看到名片機的介紹,以及下方名片 DEMO 我們按照引導,準備來直接製作一個屬於自己的名片 首先來到了資訊頁面,在這裡,你必須填上個人相關的資料 那我們來簡單填寫一下 按下開始,就可以看到我們引以為傲的編輯器 這個編輯器雖然製作時間不長,但該有的都有 文字方面,不只可以新增文字,剛剛的填入的資料也隨你新增 素材庫這裡,目前只有放簡單幾個圖案 而照片呢,則可以按你喜歡上傳,上限為5張,滿了就得清空 再來,我們看一下提供的模板 有: 火箭隊模板 工程師模板 設計師模板 精緻模板 台灣傳統模板 以及其他直示名片 不僅如此,畢竟是名片,當然可以來到背面做設計 如果做到一半,想讓名片旋轉也沒問題,但這裡會清空各位的心血,還請小心 這裡我們試著使用上一部,哇~還好東西都回來了,如果要還原也沒問題 接著看其他功能 首先是調色盤。這就不多說了。不能換顏色的編輯器,不能稱之為編輯器 再來是圖層,你要上移還是下移都不是問題 如果你想旋轉物件,當然也能旋轉物件 那如果想將某個東西固定住,也不是問題,用拖拉的方式就可以再次選取就可以取消了 刪除紐,老樣子? 接下來是文字專屬功能 字型、大小、對齊、粗體、斜體、底線、甚至是間距通通有,沒有做不到,只有我想不到 再來,我們的素材也可以調整它的外框粗細和顏色 有了這些,編輯器的基礎功能就差不多完成了 如果你認為這樣就差不多了,那麼你就太天真了! 上面只是前菜,接下來就是重點 容我為各位介紹,快捷鍵功能 從上一部、下一步、翻面、刪除、粗體、斜體、底線 甚至你想儲存,簡單 ctrl s 什麼都不需要擔心 那你說快捷鍵都有了,應該差不多了吧?果然還是太天真了! 接下來的功能連首發人員都不知道 首先是複製貼上功能!使用ctrl c ctrl v,想要什麼通通再來一份 再來是群體功能! 想要字型一起改變、想要顏色一起改變? 有了這些,只要再搭配快捷鍵,輕輕鬆鬆就能做出你要的東西來了 那就讓我用簡單的時間做個簡單的個人名片吧 雖然我不是設計師,但這個名片看起來還不錯對吧? 如果你覺得做的挺糟的,太好了,我們隨時歡迎有 sense 的人幫我們增加有質感的名片 接下來會由冠廷講解其他功能 ## 頁面總覽 因為名片機的功能很豐富,在demo前先簡單介紹功能有哪些,對於後面的demo有更清楚的認識 - 名片編輯器 - 最方便的功能,讓你套用模版,稍作修改就可以製作有設計感的名片 - 打造名片前會先輸入職務相關資訊,進入編輯器後可以快速帶入 - 提供像 power point那樣 多元完善的文字方塊功能,字體、大小、顏色、對齊,都難不倒 - redo undo 可以來回操作 - Layer上移下移 讓你調整重疊時圖層順序 - 支援快捷鍵 - 名片公開頁 - 發佈後,就有一個名片專屬的入口網頁 - 呈現名片圖片、職務資訊、個人連結,自行新增放github網址、email等等 - 也可以連結順序調整 - 名片管理 - 分為兩個部分:收藏別人的名片,跟個人名片 - 收藏名片的部份,設計書籤群組的管理,讓你可以分門別類歸檔 - 個人名片部分,可以看到自己已經發佈跟未發布的名片 - 已經發佈的可以顯示QRcode - 也有為了手機特化,類滿版效果展示名片 - 如果要離職了,要刪除名片了,就會發送訊息給其他收藏者 ## 創造名片... - 璟舜 ## 公開頁面 完成名片之後,會自動生成一個公開頁面,可以藉由這個頁面分享你的名片給其他人, 可以自定義標題、新增連結、把個人網站或是社群連結放上去,達到個人入口網站的作用 - 如果是自己的名片,會出現編輯名片 - 如果是已登入的狀態,也是別人的名片,就會出現收藏名片按鈕 - 若未登入的訪客,就只有下載圖片 - 點擊下載名片,就可以兩面的名片圖檔下載下來 接著我們來客製化自己的公開頁面 - 頁面標題 - 職務資訊切換是否公開 - 新增連結 - 依據選取的類型,會帶入預設的icon,當然也可以自己上傳 - 新增兩個連結 - 在電腦版可以拖曳調整順序 - 也可以重新修改連結或是刪除連結 ## 個人名片管理 我們有了名片,也有了個人頁面,要如何快速分享名片呢? 別擔心,我們來到名片管理 個人頁面,將剛剛做好的名片分享QRcode 就可以快速讓別人掃描了 現在就來打開手機掃描看看,馬上就可以進行收藏 接著來示範在手機上展示名片的效果,這樣就可以達到類似滿版的效果,直接秀出你的名片 我們也可以使用add to homescreen 功能,加入到主畫面,這樣就有類似app的體驗 ## 群組管理 - 新增連結 - 改名 - 調整順序 - 刪除連結 置頂 編輯標籤 標籤篩選 ## 名片訊息 來到我們最後一個主打功能:名片同步,也就是訊息系統 以下我們來示範,當今天更改職務資訊後,也會發佈訊息,收藏者就可以接收到訊息了 ## 名片牆 最後簡單帶過我們名片牆 所有發佈的名片都在這裡,可以依照類別跟地區篩選,也可以搜尋名字 以上是我們的Demo,接著我們來快速講解我們專題相關的資訊 ## 規劃 - 線稿圖: 我們兩個共同使用Figma繪製線稿圖,描繪專案整體的輪廓 - 編輯器: 核心功能編輯器,由Shun深入研究,踩過許許多多的坑才有這麼完整的功能 - 後端: 後端部分和Next的架構由我負責,因為我是前端組,所以能夠站在前端的角度思考API怎麼設計會比較好串接,這次我們前後整合算是十分順利 ## 困境 - 其實vercel做得很好,但因為編輯器所使用的套件因素,導致部屬上去有很多意外狀況 - next.js 特別在於,第一次渲染是server side,這個會導致有些browser特有的東西匯出錯 - redux跟next整合也會碰到hydrate的問題,我們使用next-redux-wrapper來把兩者整在一起 前端開發 使用 Tailwind CSS、React 作為基礎進行開發 因應個人名片入口網頁 SEO 需求,使用 Next.js 作為框架開發網站架構,並設計 Server-side Render Fabric.js 搭配 React 打造順手的編輯器 React-DnD 實現拖曳變更順序 Redux 整合多重複雜 Reducer,Redux Thunk 處理非同步請求 使用 ESLint Airbnb、Prettier 進行程式碼風格與排版管理 後端開發 使用 Node.js + Express.js,以 RESTful 原則設計 API 達 39 支,並拆分 MVC 結構,以 Joi 設計 Request 驗證 Middleware,配合 Error Handler 完善錯誤管理功能 Schema 依照需求情景選擇 Embedded / Reference JWT 實作會員驗證功能 # 名片機 MEISHIcian | 電子商務名片網站 火箭隊第 10 梯專案作品,製作者:Shun、Alex。 網址:https://meishician.vercel.app/ ## 專案特色 - 創造名片:功能齊全的名片編輯器,內建數種樣版,快速上手名片製作 - 分享名片:打造個人名片入口網頁,呈現名片、職務資訊、個人連結,並可將他人名片進行收藏 - 管理名片:名片群組化管理、分門別類,也可以貼上標籤,迅速找尋目標對象 - 同步名片:離職刪除名片或是更改職務資訊,同步發送給名片收藏者,資訊零落差 ## 專案規劃 ### 前端開發 - 框架選擇 Next.js、切板使用 TailwindCSS - 個人名片入口有 SEO 需求,設計為 Server-side render - 使用 Redux 配合 Redux Thunk 因應複雜狀態管理及非同步請求 - 使用 ESLint Airbnb、Prettier 進行程式碼風格與排版管理 - 使用 Fabric.js 操作 canvas 製作編輯器 - 使用 React-DnD 實現拖曳功能,以達成良好的 UX 體驗 ### 後端開發 - 使用 Node.js + Express.js - 以 RESTful 原則設計,並拆分 MVC 結構 - 以 Joi 設計 Request 驗證 Middleware,配合 Error Handler 完善錯誤管理 - Schema 依照需求情景選擇 Embedded / Reference - 以 JWT 實作會員驗證功能 ## Features ### 製作名片 - 在打造名片頁中填寫職務相關資料 - 可調整背景顏色 - 可選擇樣板以快速製作名片 - 可新增一般文字或職務資料,並進行細部調整 - 可新增圖庫物件,並進行細部調整 - 可上傳圖片,上限為 5 張,並可刪除。圖片支援格式: PNG、JPG、JPEG、SVG 。最大容量:2 MB - 可調整物件圖層 - 可翻轉畫布置背面 - 可調整名片為直式或橫式 - 可調存檔 - 支援群組同時修改 - 部份功能支援快捷鍵 - 【全體】 backspace 或 delete 刪除 - 【全體】 ctrl + z 上一步 - 【全體】 ctrl + y 還原 - 【全體】 ctrl + s 存檔 - 【全體】 ctrl + space 翻轉 - 【物件】 ctrl + c 複製 - 【物件】 ctrl + v 貼上 - 【文字】 ctrl + b 粗體 - 【文字】 ctrl + i 斜體 - 【文字】 ctrl + u 底限 ### 編輯個人頁 - 在管理名片頁中點選自己創建的名片可來到個人名片頁 - 點選「編輯名片」修改名片樣式或修改職務資訊 - 點選「修改資訊」可來到編輯模式 - 編輯模式中,可針對公開資訊進行調整 - 編輯模式中,可新增 / 刪除相關外部連結 - 編輯模式中,可調整外部連結順序(暫無支援手機版) ### 收藏名片 - 掃描他人 QR code 或前往名片牆尋找可進入他人名片頁 - 登入狀態下可收藏他人名片 - 可下載他人名片的圖片檔(格式: PNG) ### 管理名片 - 收藏的名片可新增標籤、修改群組、編寫注記、刪除 - 收藏的名片可新增 / 取消至頂 - 可新增 / 刪除群組。刪除群組後,原群組內名片將前往預設區 - 可更改群組名稱 - 可拖曳名片制欲收藏群組 (暫無支援手機板) - 可拖曳群組進行排列 (暫無支援手機板) - 可點選標籤尋找名片 - 可輸入關鍵字搜尋名片 - 點選「我的名片」可看到自製名片狀態 - 已發布名片可進行展示、修改、刪除 - 已發布名片可打開 QR code 供他人進行掃描 - 未發布名片可繼續進行編輯 ### 更動資訊 - 名片刪除 / 職務更動時,可自訂義傳所要傳送的訊息 ### 接收資訊 - 他人名片刪除 / 職務更新時,可皆收到對方所傳送的訊息 ## 其他好用的 Package Kit - uiball/loaders:用於轉場動畫處理 - aos:用於首頁滾動視差處理 - cookies-next:Next.js 中的 Cookie 處理 - date-fns:用於日期資料的處理 - fabric-pure-browser:用來操縱 canvas tag 以製作編輯器 - framer-motion:頁面動畫效果處理 - immer:immutable state 處理 - next-redux-wrapper:Next.js 與 Redux 整合 - qrcode.react:用來生成 網址 QR code - react-color:用來處理編輯器的調色盤 - react-dnd:用來開發拖拉功能 - react-fast-marquee:首頁滾動名片處理 - react-hook-form:表單處理 - react-icons:畫面 icon 使用 - react-redux:資料狀態管理 - react-toastify:錯誤資訊顯示 - redux-logger:確認 redux 狀態 - tippy:用來顯示工具提示框