Skip to content

howtomakeaturn/ListPower

Repository files navigation

ListPower 清單力量

ListPower 讓你可以針對特定主題,與社群一起蒐集整理資料,感受到清單力量的強大!

請參考基於 ListPower 開發的幾個線上網站:

另外也請參考 ListPower 的發展背景故事:

清單力量 OPEN SOURCE:跟網友一起蒐集清單資料的系統

功能

目前的「核心系統」有六大功能:

  • 新增
  • 編修
  • 評分
  • 留言
  • 照片
  • 標籤

六項功能都是支援社群參與,功能與介面設計,都是能讓用戶們一起加入貢獻。

系統需求

ListPower 是基於 Laravel 5.8 版本開發,系統需要能跑 Laravel 5.8 以上的版本。

安裝

ListPower 基本上就是一個普通的 Laravel 應用程式。

請 git clone 或是直接下載這份程式碼,之後按照一般流程架設即可。

設定

1. Facebook 帳號登入

預設使用 Facebook 帳號登入,請在 .env 中設定以下參數:

  • FACEBOOK_CLIENT_ID
  • FACEBOOK_CLIENT_SECRET
  • FACEBOOK_REDIRECT

2. 設定管理員

請在 .env 中設定參數:ADMIN_ACCOUNT_EMAIL

3. 建立新清單

透過網頁面板新增:

  • 點選上方「建立新清單」
  • 點選「手動設定欄位」

透過網頁面板匯入:

  • 點選上方「建立新清單」
  • 點選「匯入 CSV 檔」

4. 啟用 Google 地圖

清單如果有欄位設定為「地址」類型,就會啟用地圖功能。

請在 Google Cloud Platform 開啟以下 API 權限:

  • Maps Embed API
  • Google Maps JavaScript API
  • Google Maps Geocoding API

之後在 .env 中設定以下參數:

  • GOOGLE_MAP_KEY:這是用來在瀏覽器呼叫 Google 顯示地圖的 key,會在瀏覽器被看到,因此請設定好「HTTP 參照網址」
  • GOOGLE_MAP_KEY_UNRESTRICTED:這是在伺服器端呼叫 Google 將地址轉成經緯度的 key,不會在瀏覽器被看到,請設定好「IP 位址」或是以「無」設定

Roadmap

  • 新增與編修權限設定功能

    • 目前清單資料是自由貢獻
    • 做成可設定「全開放」、「需審核」、「不可編輯」
  • 模板主題功能

    • 開發 theme helper layer(可以是一堆 function 或是 Facade),方便創造主題時能專注在 html/css
  • 用戶與清單權限功能

    • 每張清單各自有一或多個管理員
    • 開發管理面板,讓管理員能管理資料
  • 完成地圖模組

    • 確定抓取座標的時間點
    • 設計座標不準確時,人為介入修正的機制
    • 可切換 map 來源(Google, MapBox, OpenStreetMap, ...etc)
  • 支援系統更新的檔案架構,open source 核心升級時,各專案要能無痛升級,包含:

    • 開發了各自主題的專案
    • 進行過功能客製化的專案
  • 更多登入方式

    • Google, Twitter, Native Login, etc...
  • More...

    • 將 theme 之外全部 code 拉成一層 layer
    • theme & extensible & upgradable code structure

Contributing

謝謝您考慮貢獻開發到本專案。

目前專案處於早期核心設計階段,除了明顯的錯誤修正、功能加強、小範圍的優化歡迎直接送 PR 之外,請不要直接寫新功能的開發 PR。

請跟我一起討論、設計之後,在確保早期核心設計清楚、簡單、一致的情況下,再進行開發。我們可以先一起討論設計下 spec,謝謝您。

License

Licensed under the GNU General Public License Version 3.0 or later.

About

ListPower 讓你可以針對特定主題,與社群一起蒐集整理資料,感受到清單力量的強大!

Resources

License

Stars

Watchers

Forks

Packages

No packages published