###### tags: Launchpad [toc] # 打造專業作品集 ### 打造專業作品 如果這個專案是你應徵面試的作品,那你就要對於專案的品質精益求精,讓作品可以幫你說話,更可以展現你在 ALPHA Camp 所學習到的一切。 下面的小叮嚀,是為了幫助你提高專案的整體完成度: * 讓專案作品更真實,作品上的「假資料」請務必要非常「真實」,圖片素材來源可參考圖庫:<a href="https://unsplash.com/" target="_blank">Unsplash</a>,<a href="https://www.flickr.com/" target="_blank">Flickr</a>,<a href="https://burst.shopify.com/" target="_blank">Burst</a> * 到 <a href="https://www.freelogodesign.org/" target="_blank">FreeLogoDesign</a> 或類似網站設計一個 logo * 建議到 <a href="https://tw.godaddy.com/" target="_blank">GoDaddy</a> 或 <a href="https://www.namecheap.com" target="_blank">namecheap</a> 購買一個適合的作品網址,而網址該與網站的 logo 或專案的名稱一致 * 瀏覽器的頁籤 favicon 符合專案 logo * 如有使用任何第三方開源套件,需注意各種著作權的宣告方式 * 沒有資料的預設頁面 * 有 404 頁面與 302 自動跳轉 * 試著以 <a href="https://developers.google.com/speed/pagespeed/insights/" target="_blank">Google Pagespeed</a> & <a href="https://search.google.com/test/mobile-friendly" target="_blank">Google Mobile-Friendly</a> & <a href="https://tools.pingdom.com/" target="_blank">Pingdom</a> 進行測試 ### 客製化你的專案 除了完成基本功能外,建議同學也可以自行研究市面上不同的活動平台,並加以發想,看看能否設計新的功能,或是更細膩的使用者體驗,來突顯專案的特色。 如:針對電商網站「使用者新增會員」這功能來說,,除了做到標準的 form submit 外,可以思考下面幾點: * 新增會員時會遇到什麼困難? * 如何讓這個過程更方便?例如:當使用者輸入手機時,出現大型數字鍵盤方便點選。 * 完成資料填入時,是否能持續進行後續動作,資料補登流程為何? ### 進階實務工具應用 身為一個專業工程師,不斷學習新技術、新工具是必要的事。在這裡,我們提供幾個業界常用,但並沒有包括在教材中的軟體工具,以及它們的使用場景。我們建議你可以去探索,或是與助教討論一下這些工具的使用方式,讓你的專案更專業: * **Database** * 針對如電商、金融類型的網站,資料庫的操作要非常謹慎。例如提款與更新餘額等操作發生時,資料都必須保持一致性。同時,如何提高資料庫的效能也非常重要 * 常用工具/優化技巧 * **Transaction** 用於不可中斷的資料庫操作,讓資料保持一致性 * **Normalization/index** - Normalization 與 Index 是兩種資料庫設計的優化技巧,可以增加資料表查詢的效能 * **Caching** * Caching 「快取」是用於 API 的暫存資料,將常見的查詢暫存起來,避免頻繁向資料庫索取資料所帶來的效能瓶頸 * 常用工具:<a href="https://redis.io/" target="_blank">Redis</a> * Message Queue * 有些操作是「有順序」但「需要時間處理」的行為,可以搭配 Message Queue 實現,其應用場景如訂票與寄簡訊等 * 常用工具:<a href="https://www.rabbitmq.com/" target="_blank">RabbitMQ</a> 與 <a href="https://kafka.apache.org/" target="_blank">Kafka</a> * Web Sockets - websockets/Socket.io * 當應用程式當中需要「即時雙向」的溝通,可以利用 Socket 來實現,不用受限於 HTTP 的 Request-Response 單向溝通。 * 常用工具:websockets/<a href="https://socket.io/" target="_blank">Socket.io</a> * GraphQL * GraphQL 是一種新的 API 設計概念,相對於 RESTFul 以物件為單位的請求,GraphQL 提供請求方更彈性的查詢機制。如此一來,不需要前端增加一個需求,後端就必須增加對應的 API * 處理 Domain/SSL 機制 * 當服務最後要上線時,通常會在應用程式前面再加上一層 HTTP Server ,負責處理 Domain 、SSL(HTTPS) 等機制 * 常用工具:<a href="https://www.nginx.com/" target="_blank">Nginx</a> * 開發環境優化 * 為了讓開發環境保持乾淨,可以利用 Docker 的機制來取代 VM 達到更輕量的環境分割,比如 <a href="https://kubernetes.io/" target="_blank">Kubernetes</a> 用於 <a href="https://www.docker.com/" target="_blank">Docker</a> 的管理。 ### 專注於前端的同學 如果你是專注於開發前端的同學,我們提供一個新的方式,可以用串接 API 的方式來呈現你的作品,<a href="https://jamstack.org/" target="_blank">JAMStack</a> (<a href="https://ithelp.ithome.com.tw/articles/10216119" target="_blank">中文介紹</a>) 可以透過第三方提供的服務放資料,吐出 API 供前端串接,例如:<a href="https://prismic.io/" target="_blank">Prismic</a>。 另一個以 Trello 為上資料的例子:<a href="https://letswrite.tw/trello-db-basic/" target="_blank">https://letswrite.tw/trello-db-basic/</a>,但是比較可惜的是 Trello 的資料需要設定為公開才可以。 ### 參考專案 以下是過去學生完成的畢業專案,你可以參考他們專案的完整度: #### Gogoro 遊戲化旅遊闖關 App ALPHA Camp 學生跟 **Gogoro** 合作,打造一款旅遊闖關遊戲 (使用 RWD 透過瀏覽器呈現)。透過遊戲化功能,Gogoro 希望能鼓勵他們的車主能騎更多,提高使用率。 <div style="position: relative;width:100%;height:0;padding-bottom: 56.25%;"> <iframe style="position:absolute;top:0;left:0;width:100%;height:100%" src="https://www.youtube.com/embed/PvFfHp2zaMM" frameborder="0" allowfullscreen></iframe></div> #### 社群數據分析工具 ALPHA Camp 的合作夥伴**社企流**想幫助行他們的行銷團隊更容易去監控活動成效。我們的學生打造了一個自動化數據報表 (dashboard),讓不管是 Facebook、Google、內容行銷呈現,能一目暸然。 <div style="position: relative;width:100%;height:0;padding-bottom: 56.25%;"> <iframe style="position:absolute;top:0;left:0;width:100%;height:100%" src="https://www.youtube.com/embed/H_VDhgvAMgw" frameborder="0" allowfullscreen></iframe></div> --- # 作品集引導:自主專案 ### 大型自主專案的目的 為了讓同學能**綜合應用**所學,並在產品打造上建立接近業界水準的能力,我們蒐集了業界技術主管/CTO/CEO 們的意見,整理成指定題目與相關規格,希望能讓同學在完成專案時,充分發揮你的技術力與產品力。 ### 專案題目 我們會提供 4 個業界常見的指定題目與現成作品,如下: 1. Customer Relationship Management (CRM) 系統 2. 電商網站 3. 旅遊網站 4. 活動平台 當然,如果你對產專案作品有不一樣的想像,我們也鼓勵你去嘗試。但在動手寫 code 之前,要先清楚定義一個具體的受眾以及你產品提供的價值。再把核心功能分階段列出來,按部就班的把專案完成。 我們非常建議去複習課程前面「產品設計」與「軟體開發流程」的兩個章節的內容。 至於希望只專注在前端的同學,你也可以參考像<a href="https://github.com/carlo-bruno/ga-wdi23-project-1" target="_blank">這樣</a>的作品,打造你自己的專案。但要記得,對一個軟體工程師來說,**技術力**才是你的核心能力。 ### 品質與完成度要求 因為這個專案產品會成為你未來的求職作品,所以我們對它的品質與完成度要求,將針對你求職的方向而有所不同: #### 前端 * 產品功能與使用者體驗的完成度與品質 * 頁面版型與互動的像真度(針對參考現有產品) * Mobile first/RWD 開發的完整度(行動裝置的瀏覽體驗良好) * HTML/CSS 架構與 coding style 的清晰度 * 透過參考範例,API 規格定義合理,並能自行產生假資料 * 前端框架的應用適當 #### 後端/全端 * 程式碼邏輯清楚 * 功能寫在適合的位置/檔案中 * 核心功能的完成度 * 資料庫的設計適當 * 簡單的功能測試 * 成功佈署(至少需在 Heroku 上,建議佈署到 AWS/GCP) * 適當整合第三方 API * 為產品的特殊使用場景,提供有效的問題解決方案 (如:使用 Redis) * 設計並打造簡單的演算法處理資料 #### 個人專案管理 雖然這是一份個人專案,但養成專業工程師的技能與素養仍然是必要的。你需要符合以下規定: * 提供一份清楚的功能/使用者故事 (user story) 表單 * 使用 Trello (或其他工具) 清楚規劃/記錄準備開發的功能,並註明每張 ticket 的狀態 (e.g. backlog, in development, testing, complete) * 定義 Git commit 的頻次、原則與 comment style * 撰寫一篇個人部落格,描述整個專案的過程;e.g. * <a href="https://tw.alphacamp.co/blog/alpha-camp-student-mike-graduation-project" target="_blank">從零打造「美食預定」電商平台,三人團隊的AC畢業專案心得</a> (Mike) * <a href="https://medium.com/@ianyshuang/triptrip-leaning-notes-f49aab04cb1e" target="_blank">Alphacamp — 畢業專案心得會</a> (Ian) * <a href="https://medium.com/pierceshih/%E9%9B%BB%E5%95%86%E5%B0%88%E6%A1%88%E5%AF%A6%E6%88%B0-%E5%8E%9F%E4%BE%86%E7%94%A2%E5%93%81%E9%96%8B%E7%99%BC%E6%98%AF%E9%80%99%E9%BA%BC%E4%B8%80%E5%9B%9E%E4%BA%8B-529c3108a798" target="_blank">「電商專案實戰」- 原來產品開發是這麼一回事!</a> (Pierce) * <a href="https://tw.alphacamp.co/blog/alpha-camp-web-dev-bootcamp-9-months-journey" target="_blank">在ALPHA Camp的九個月網路開發Bootcamp心路歷程</a> (Mike) --- # 畢業專案題目:CRM 系統 ### 問題 對於店家而言,他們需要一個簡單易懂的方式,用來記錄過去(或是潛在)客戶的資料、數據與行為,幫助他們提供最適合的產品與服務給最適合的客戶。 ### 解決方式 Customer Relationship Management (CRM),意即客戶關係管理系統: * 能記錄現有與潛在客戶的資料,如個人資料、喜好,以及購買過的產品與金額等個人化訊息 * 能記錄現有與潛在客戶的行為,如購買過的產品與金額、溝通訊息等 * 能透過這些行為與資料將客戶分眾,讓店家可以針對最有價值的客戶,提供最適當的產品與服務 ### 核心功能 一般的 CRM 系統會有以下的核心功能: * 新增、修改與刪除客戶名單 * 記錄客戶的個人資料,包括名稱、職稱、聯絡方式、生日(提供生日優惠),以及其他客戶願意提供的資料 * 記錄客戶過去的行為,包括: * 購買行為:購買過的產品(包括數量與金額)、購買日期與購買地點 * 溝通紀錄:客戶跟店家過去溝通的記錄與筆記 * 透過客戶資料(如 email 或手機號碼)來尋找特定的客戶記錄 * 透過篩選不同的參數,將客戶分類,例如: * 特定時段內消費一定金額以上的大客戶 * 當月生日的客戶 * 根據客戶的屬性或是購買行為,定義不同的標籤來管理客戶,例如: * 從潛在客戶到大客戶:lead → paid customer → VIP * 根據客戶的資料,在適當的時候,透過 email 作客戶溝通 * 讓使用者輸出 (export) 特定的資料到 excel 或是 csv 檔案,作更深入的分析 ### 錯誤訊息與處理方式 一個好的產品除了能讓使用者正常操作之外,更需要考慮到使用時會發生的不同狀況,加以處理,並顯示明確有效的警告/錯誤訊息來提醒使用者。比如: 專櫃人員在操作 CRM 時可能會犯什麼錯誤(例如新增會員時沒有輸入 email 或手機)?我們該如何處理這些狀況?系統該顯示什麼樣的訊息? ### 產品範例 為了讓你對 CRM 系統有更具體的認知,這裡準備了兩個範例。 #### HubSpot CRM <div style="width:100%"> <a href="https://assets-lighthouse.alphacamp.co/uploads/image/file/10776/ExportedContentImage_00.png" target="_blank"><img style="max-width:700px;width:100%;" src="https://assets-lighthouse.alphacamp.co/uploads/image/file/10776/ExportedContentImage_00.png"></a></div> HubSpot 是業界最受歡迎的行銷軟體 (marketing software) 之一。而他們的 <a href="https://www.hubspot.com/products/crm" target="_blank">HubSpot CRM</a> 系統是免費的。它的功能非常完善,你可以參考 <a href="https://app.hubspot.com/academy/4959907/lessons/339/1872" target="_blank">HubSpot 提供的這系列 CRM 教學影片</a>(需先註冊免費帳號才能觀看),來瞭解 CRM 的功能與設計概念。不過以你的專案而言,並不需要完成 HubSpot 所有的功能。 #### AC 畢業生專案 - 茶籽堂 CRM 另外,ALPHA Camp 的學生曾跟我們的企業夥伴<a href="http://www.chatzutang.com/" target="_blank">茶籽堂</a>合作,打造了一個專門給茶籽堂實體店面員工使用的 CRM 系統。你也可以從以下的影片參考他們的功能與使用模式: <div style="position: relative;width:100%;height:0;padding-bottom: 56.25%;"> <iframe style="position:absolute;top:0;left:0;width:100%;height:100%" src="https://www.youtube.com/embed/GJRwUiQKTtA" frameborder="0" allowfullscreen></iframe></div> 如果你準備選擇 CRM 系統作為畢業專案,請參考上述的需求、功能與範例,來完成這個題目。 --- # 畢業專案題目:電商網站 ### 問題 一般的線上賣場通常把所有的進駐店家放在一起,店家們並不能突顯各自的品牌風格,或是實現他們期待提供給消費者的購買體驗。更重要的是,客戶的購買資料與數據都是屬於賣場的,無法讓店家優化他們的產品與服務。 而中小企業店家希望能將他們的商品推廣到線上,接觸更多的消費者。 ### 解決方式 一個專屬於中小店家的電商網站,讓店家可以輕鬆把商品上架,接受訂單。 ### 核心功能 電商網站一般會分為「前台」與「後台」: * 前台是一般消費者看到的頁面,目的是讓商品看起來吸引人,並讓消費者可以輕鬆下單。 * 後台是店家的管理系統。其目的是讓商家可以輕鬆經驗他們的線上商店。 從管理商品、追蹤訂單、執行促銷 (例如優惠卷發放),甚至提供業績報表等,這些都是一個有效的電商網站該有的功能。 這裡我們提供了一些常見的核心功能: 店家能 * 一次上架多樣產品 * 清楚管理商店的產品種類、數量與定價 * 接受訂單與收取款項 * 設定各種優惠方式,如達到指定金額免運費、發放優惠卷 (coupon code) 等 * 查詢商品的銷售狀況 * 搜索與追蹤各種商品、客戶以及訂單資料,並能修改與刪除 消費者能 * 從購物車、結帳到付款,透過最簡短、方便的流程找到需要的商品並完成購買 * 查詢過去的訂單記錄 * 建立個人資料與產品收藏清單 (wish list),方便未來購買 * 在付款成功後收到明確的訊息 (頁面與 email),確認下訂成功 ### 產品範例 <div style="width:100%"> <a href="https://assets-lighthouse.alphacamp.co/uploads/image/file/10777/ExportedContentImage_00.png" target="_blank"><img style="max-width:700px;width:100%;" src="https://assets-lighthouse.alphacamp.co/uploads/image/file/10777/ExportedContentImage_00.png"></a></div> 為了讓你對電商網站有更具體的認知,我們以 <a href="https://www.citiesocial.com/" target="_blank">Citiesocial</a> 為範例,製作了一個簡單的網站說明: <div style="position: relative;width:100%;height:0;padding-bottom: 56.25%;"> <iframe style="position:absolute;top:0;left:0;width:100%;height:100%" src="https://player.vimeo.com/video/401170380" frameborder="0" allowfullscreen></iframe></div> ### 錯誤訊息與處理方式 一個好的產品除了能讓使用者正常操作之外,更需要考慮到使用時會發生的不同狀況,加以處理,並顯示明確有效的警告/錯誤訊息來提醒使用者。例如: * 當消費者下單時輸入了 1,000,000,000 或是其他錯誤輸入,系統該如何處理? * 當消費者下單後需要修改訂單,該如何做? * 商品缺貨時該如何顯示? * 當同時有多位消費者在線上購物,我們如何防止庫存低的商品賣完後還能被下單? * 當消費者使用的優惠券已經過期或無效,該如何顯示? * 付款失敗時該如何處理? 如果你準備選擇活動平台作為畢業專案,請參考上述的需求、功能與範例,來完成這個題目。 --- # 畢業專案題目:活動平台 ### 問題 辦活動或是講座時,主辦單位通常需要更多曝光的機會、接觸更多的消費者。但是,辦活動的流程還包含了售票(金流、銀行合作等)、退票的人工處理等,整個流程費時費力。 如果一次舉辦多場講座可能讓人心神耗盡。我們該如何讓活動能夠被有效管理、行銷與推廣呢? ### 解決方式 透過一個活動入口網站,讓各種類型的活動能集結在平台上。不論它們的規模是個位數,還是破萬人的大型活動,都可以在平台上輕鬆建置,規劃自己的售票方式,並且管理、行銷、推廣自己的活動! ### 核心功能 活動平台一般會分為「前台」與「後台」: * 前台是一般使用者看到的頁面。目的是讓使用者瀏覽許多不同的活動或講座,並讓他們可以輕鬆報名 * 後台則是主辦單位的管理系統。目的是讓主辦單位可以管理現有的活動 管理活動、追蹤參加活動的人員,甚至提供報表等,這些都是一個活動平台該有的功能。這裡,我們提供了一些常見的核心功能: 主辦單位能 * 上架活動流程 * 管理活動的內容、價格與報名數量 * 接受購票訂單,收取款項 * 設定各種優惠方式,比如發放優惠卷 (Coupon code)、保留席次 * 查詢活動售票的銷售狀況 * 搜索、追蹤上架活動、訂單資料,並能修改與刪除 使用者能 * 從瀏覽到參與活動,透過最簡短、方便的流程找到活動並完成購票程序 * 能從不同角度搜尋到活動:使用者在所在的位置附近,時間排序 * 查詢過去的活動參與記錄 * 建立個人資料並追蹤主辦單位 (wish list),方便下次參加 * 在購票成功後收到明確的訊息 (頁面與 Email),確認下訂成功 ### 錯誤訊息與處理方式 一個好的活動平台除了能讓使用者正常操作之外,更需要考慮到使用時會發生的不同狀況,加以處理,並顯示明確有效的警告/錯誤訊息來提醒使用者。例如: * 當報名人數超過主辦單位的設定,系統該如何處理? * 當使用者需要退票時,該如何做? * 如果活動截止時,該如何顯示? * 當消費者使用的優惠券已經過期或無效,該如何顯示? * 如果付款失敗,該如何處理? ### 產品範例 為了讓你對活動平台有更具體的認知,我們提供了一個簡單的說明,以 Evenbrite 為例: <div style="position: relative;width:100%;height:0;padding-bottom: 56.25%;"> <iframe style="position:absolute;top:0;left:0;width:100%;height:100%" src="https://player.vimeo.com/video/400801285" frameborder="0" allowfullscreen></iframe></div> 這裡,我們也提供了幾個不同活動平台使用介面 (UI) 設計的範例,給你參考: 1. 活動通:<a href="https://www.accupass.com/?area=north" target="_blank">https://www.accupass.com/?area=north</a> 2. KKTIX:<a href="https://kktix.com/" target="_blank">https://kktix.com/</a> 3. Meetup: <a href="https://meetup.com/" target="_blank">https://meetup.com/</a> 如果你準備選擇活動平台作為畢業專案,請參考上述的需求、功能與範例,來完成這個題目。 --- # 畢業專案題目:旅遊平台 ### 問題 消費者在決定旅遊行程時,不管是機票、飯店或是旅遊體驗,都有許多考量的面向。這些時候,就會需要透過不同的資料來進行判斷,包含日期、地點、體驗類型、評價與價格等。 ### 解決方式 一個一站式平台,讓消費者透過出遊日期、地點、體驗類型、評價、價格等多個面向,搜索、瀏覽,以及購買心儀的旅遊體驗。 ### 旅遊平台的核心功能 旅遊平台與電商網站類似,一般也會分為「前台」與「後台」。不過兩者的使用者路徑與資料架構不同: * 前台是一般消費者看到的頁面,目的是讓平台提供的旅遊服務吸引人,並讓消費者可以輕鬆下單 * 後台是平台的管理系統。平台管理者會把旅遊服務上架,同時管理以及追蹤訂單,甚至提供業績報表等 這裡我們提供了一些常見的核心功能: 平台管理者能 * 一次上架多樣產品 * 將旅遊商品分類,例如:國家/城市、屬性等 * 清楚管理旅遊商品的種類、數量與定價 * 接受訂單,並收取款項 * 發放優惠卷 (coupon code) * 查詢平台上的銷售狀況 * 搜索與追蹤旅遊商品、客戶、以及訂單的資料,並修改或刪除有關的資料 消費者能 * 從瀏覽、購物車、結帳到付款,透過最簡短、方便的流程,找到需要的旅遊商品並完成下訂 * 查詢過去的訂單紀錄,更改或取消行程 * 建立相關的個人資料與產品收藏 (wish list),方便往後購買 * 在付款成功後收到明確的訊息 (頁面與 email),確認下訂成功 * 檢查旅遊商品,留下評論 ### 產品範例 <div style="width:100%"> <a href="https://assets-lighthouse.alphacamp.co/uploads/image/file/10781/ExportedContentImage_00.png" target="_blank"><img style="max-width:700px;width:100%;" src="https://assets-lighthouse.alphacamp.co/uploads/image/file/10781/ExportedContentImage_00.png"></a></div> 為了讓你對旅遊平台有更具體的認知,我們以 <a href="https://www.kkday.com/zh-tw/" target="_blank">KKDay</a> 為範例,製作了一個簡單的網站說明: <div style="position: relative;width:100%;height:0;padding-bottom: 56.25%;"> <iframe style="position:absolute;top:0;left:0;width:100%;height:100%" src="https://player.vimeo.com/video/401258108" frameborder="0" allowfullscreen></iframe></div> ### 錯誤訊息與處理方式 一個好的產品除了能讓使用者正常操作之外,更需要考慮到使用時會發生的不同狀況,加以處理,並顯示明確有效的警告/錯誤訊息來提醒使用者。例如: * 當消費者下單後需要修改訂單,該如何處理? * 如果旅遊商品已經超過名額,如何避免消費者下單? * 當消費者使用的優惠券已經過期或無效,該如何顯示? * 如果付款失敗,該如何處理? --- # 開發期間,你要做什麼? ### 快速開發期 為期 4 周的快速開發期,你會體驗從無到有打造一個產品專案,解決一個實際發生的問題或是需求。在快速開發期開發專案,不只是學習,更是練習用程式語言解決問題的實戰演練。 #### 開發前準備 實作一個從無到有的專案,最忌諱的就是一開始就埋頭苦幹。在開發開始之前,確認專案目標、要解決的問題是很重要的,才能一致的目標往前衝刺。 從 program kick-off 到第一週的開發這段時間,請你完成以下功課: * 根據要解決的問題或是痛點,以及初步的 user stories,定義出產品的完整使用流程 * 根據需求有初步的 ERD 架構、思考開發上可能面臨到的困難 * 根據需求以及定義出來的完整使用流程,能有初步的 wireframe,wireframe 是將想法視覺化、具象化的過程,會有助於專案的討論 **請同學們準備好以上資料,並在實際開發前和小組助教約第一次 tech hour 討論是否可行。** **請同學們各自選題,但相同性質的題目,我們會分配給同樣的助教導師,視情況一同進行 tech hour** #### 每週開發進度討論 以下提供每週開會討論的方式給同學參考: * 會議前準備:提前將會議的 agenda、會議的目的、要討論的主題,提前 1 天透過 basecamp 分享給助教 * 會議進行:Demo 前一次會議之後到目前為止實作的使用者體驗;要討論的主題或是要進一步釐清的需求;到下一次會議預計會完成哪些使用者體驗 * 會議結束後:將會議記錄,在會議結束當天,透過 Basecamp 群組給所有與會者知道。 #### AC 建議的每週開發重點: **Preparation / Sprint 1** * 根據要解決的問題或是痛點 * 定義初步 user stories 與產品的完整使用流程 * 根據需求有初步的 ERD 架構、思考開發上可能面臨到的困難 * 根據需求以及定義出來的完整使用流程,能有初步的 wireframe,wireframe 是將想法視覺化、具象化的過程,會有助於專案的討論 * 確認預計會使用的第三方服務/API/library * 第一次助教 tech hour 確認: * 1) 要完成的產品目標; * 2) 各階段開發重點; * 3) 確認技術可行性的風險項目 (尤其是第三方服務) **Sprint 2** * 完成專案基礎架構 (e.g. model design, user authentication.....etc) * Key feature 開發 / 實作產品完整使用者體驗流程 * 驗證關鍵功能的技術可行性 (e.g. 查閱第三方服務文件、模擬串接流程等等) * 第二次助教 tech hour:依實際工作內容,再次確認: * 1) 要完成的產品目標; * 2) 各階段開發重點; * 3) 技術可行性驗證 (尤其是第三方服務) **Sprint 3** * deploy to Heroku or GCP * UI implement / 套版 * 功能優化 **Sprint 4** * 專案收尾,確認【專案口試評審標準】裡的項目是否都有完成 * 第三次助教 tech hour 確認專案完整度 **Feature Freeze 後** * 不能修改 deploy 網址、不能新增 user story * 根據助教的回饋與提出的 issue 做修改 * 準備畢業口試的簡報 #### Weekly Check-in @ Basecamp 請你在 basecamp 群組中回報團隊開發的近況、遇到的困難、下週預計的進度以及是否有固定與提案主開會討論專案內容,請在**週日中午前**完成回報。 除了讓 AC 團隊清楚同學們專案開發的進度以及狀況,我們也會針對團隊遇到的困難或是開發的 priority 給予適時的回饋(但不是 PM 的角色,開發的 priority 以及溝通的責任仍然在團隊身上)。 更多關於快速開發期中,會提供給團隊的支援,會在下個單元中有更詳細的說明。 --- # 畢業專案開發支援 ### 畢業專案支援 Tech Office Hour #### 說明 為了幫助同學能順利完成畢業專案,我們特別加開安排了 4 次助教支援。也為了能夠有效利用助教與同學們的時間,建議同學們將 4 次的 Tech Office Hour 安排在不同的專案開發階段,讓助教們能夠有效地給予適當精準的回饋與修改建議。同時也請同學務必遵守下列的實行規則,讓你們的 Tech Office Hour能夠更順利進行。 以下提供開會討論的方式給各位同學參考: #### 實行規則 * 會議前準備:提前將會議要討論的主題,提前至少提前 24小時透過 basecamp提供給助教 * 每組團隊總共有 4 次的 Tech Office Hour,每次時間為 1 個小時。 * 會議進行:Demo 前一次會議之後到目前為止實作的功能;要討論的主題或是要進一步釐清的需求;到下一次會議預計會完成哪些功能開發 * 會議結束後:將會議記錄和收穫,在會議結束當天,上傳到每組的 Basecamp 群組 #### 如何在 Tech Office Hour 提問 為了有效發揮 Tech Office Hour 的效用,請務必在諮詢前 24 小時將以下資訊上傳到 basecamp給助教,幫助助教針對開發的狀況進行事前準備: 1. 就整體任務,你目前已經完成了什麼? 2. 現在的任務現狀,和你最一開始設計的 User Stories,有沒有任何演化需要先 Update 的? 3. 當前功能的階段性目標是什麼? 4. 就你打算要實現的功能,在技術面上遇到了什麼難題、阻礙? 5. 是否已嘗試或思考過某些方法?若有,針對你試過或想過的這些方法,有什麼困難? 6. 就以上提到的困難,你期待在這次 office hour 裡,得到哪方面的技術協助? 以上的資訊,能呈現的愈充分詳細(如錯誤訊息截圖、文字描述狀況),對助教提供協助會有愈大的幫助。 #### 約 tech hour 範例 以下是過往同學的優秀範例,請同學們在跟助教約 tech hour 時,請務必事先說明狀況才能讓助教也更有效率協助你們的專案進行。 <div style="width:100%"> <a href="https://assets-lighthouse.s3.amazonaws.com/uploads/image/file/8974/ExportedContentImage_00.png" target="_blank"><img style="max-width:500px;width:100%;" src="https://assets-lighthouse.s3.amazonaws.com/uploads/image/file/8974/ExportedContentImage_00.png"></a></div> <div style="width:100%"> <a href="https://assets-lighthouse.s3.amazonaws.com/uploads/image/file/8975/ExportedContentImage_01.png" target="_blank"><img style="max-width:500px;width:100%;" src="https://assets-lighthouse.s3.amazonaws.com/uploads/image/file/8975/ExportedContentImage_01.png"></a></div> #### 會議連結 Tech Office Hour 會以線上會議的形式進行,AC 不會協助提供 zoom 的連結,需要同學自行準備會議連結並寄給助教。 Zoom 的免費方案有限制 40 分鐘,在這裡告訴團隊一個小 tip,讓團隊在 40 分鐘跳出之後,可以繼續使用同一個 zoom 連結進行會議。登入 Zoom 之後進到 <a href="https://zoom.us/profile" target="_blank">https://zoom.us/profile</a> 頁面(如下圖),你會看到 Zoom 有提供一組「個人會議 ID」,使用這個做為會議連結,在 40 分鐘時間限制到了之後,只要在再重新點連結就可以繼續進行會議囉!(記得也要提醒助教點同個連結進入會議) <div style="width:100%"> <a href="https://assets-lighthouse.s3.amazonaws.com/uploads/image/file/8976/ExportedContentImage_02.png" target="_blank"><img style="max-width:700px;width:100%;" src="https://assets-lighthouse.s3.amazonaws.com/uploads/image/file/8976/ExportedContentImage_02.png"></a></div> ### 注意事項 請避免詢問 UI 設計、排版的問題,如果團隊使用 Bootstrap 產出頁面有遇到困難,建議團隊直接購買套版來解決。 另外也提供團隊關於 UI 設計的參考連結: * <a href="https://support.balsamiq.com/ui101/" target="_blank">Introducing: UI Design 101</a> * <a href="https://www.smashingmagazine.com/2018/02/comprehensive-guide-ui-design/" target="_blank">Comprehensive guide on UX Design</a> (Smashing Magazine) * <a href="https://learntocodewith.me/posts/color-palette-tools/" target="_blank">21 Color Palette Tools for Web Designers and Developers</a>
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up