那些年,我在大學接案血淚史
我是誰 ?
-
臺東大學不務正業學士(prev)
-
海大血汗碩士(now)
-
PHP developer
-
Web developer
-
Github:https://github.com/peter279k
在校園開發應用系統?
survey
事情是這樣的...
通識課的認識
老師找我同學
老師希望做個流星檔案上傳系統
受託同學求救(他其實不會...)
於是我就跳坑了...
架構
初出茅廬
那時候才二年級,什麼架構完全沒有概念,只知道兜出來,就對了,因此很悲劇的結構圖 ORZ...
架構很恐怖...
外加很歡樂的 server
- Linux Ubuntu
- 一直換機臺,硬體各種壞掉
- 好不容易架起來,其實硬體還是壞的...←老師認為是好的
開發環境
- PHP 5.4
- SQLite → 資料較少且方便移植專案
- jQuery
用到函式庫
- MySQLi
- PHPMailer
- 內建 zip libraries
Demo
小結
- 老師人很好
- 溝通方便
- 東西做出來最後還是沒上線成功
- 開發時程:一年
接案的 offer
猜猜是多少 XD?
三下時...
強者我學長要我交接
就決定是你惹!
體育室校務系統
- 特別助理
- 組長
- 主任
- 體育系大二 / 大三全體學生(美宣,宣傳,機動組 ...)
- 開發人員 X 1
運動會 / 水運會團隊人員配置
重點來了
學長也是從陌生到熟悉...
所以也留下了進擊的檔案結構...
幸運的是
與學長討論了
- 重構架構圖
- 重整資料表
- 釐清使用者需求
到了大四
運動會 + 水運會接連上門...
開始日以夜繼的 coding...
語錄
- 拜託,很急。
- 從今天開始,一週內可以嗎?
- 2/26,2/27,2/28 截止日到底是?
- 我們已經改程用Google 表單代替了← WTF...
- 獎狀樣板我沒有,要跟上屆開發學長要。
- 請問這個需求可以辦到嗎?
要在開康樂會議時,講解操作系統...
server
- 開放有限度使用 SSH 登入
- 開放 phpMyAdmin 管理資料庫
- PHP 5.3 with suhosin
- MySQL 5.1,一般帳號無法新增資料庫
- 有 Git ←最近才發現,已經太遲 ORZ...
- Apache 沒有載入 mod_rewrite 模組
奇怪 server 加持下
只好自己自幹 MVC 架構...
<?php
//controller.php
interface Controller
{
public function invoke($action,$data);
}
?>
<?php
//model.php
interface Model
{
public function handle_login($table_name,$account,$pwd,$recaptcha);
//public function update_pwd($table_name,$pwd1,$pwd2);
public function check_login($who);
public function get_volunteer_item();
public function admin_volunteer_item();
public function get_checkvolunteer_item();
public function post_user_id($user_id);
public function post_check_item($item_id,$user_id);
public function handle_signup($signId,$signup_open);
public function cloth_set_action($cloth_size);
//more public/private method...
}
?>
<?php
//route.php
require_once("../Controller/controller.php");
$url = $_SERVER["REQUEST_URI"];
$url_arr = explode("=", $url);
$url_len = count($url_arr);
if($url_len>2 || $url_len<2)
{
echo "request-error";
}
else
{
$act_arr = explode("_",$url_arr[1]);
$act_len = count($act_arr);
if($act_len!=3)
{
echo "action-error";
}
else
{
$control = new my_controller();
$data = array();
if(!empty($_POST["data"]))
$data = $_POST["data"];
echo $control -> invoke($url_arr[1],$data);
}
}
?>
route 方法
//change_pwd.js
$(function(){
$.post("/sports/67/handle/Route/route?action=check_login_student", function(response){
res = $.parseJSON(response);
if(!res["result"]){
location.reload();
}
});
});
進擊的前端
後記
- 他算是我的代理人,我沒有交接到這一塊。
- 運動會從我這裡,又移到另一位助理 A,所以我不太清楚。
- 我們以為這是志工,以此身分協助開發系統。
- 我們要改寫成永久性的系統,那功能很簡單,就像 Google 表單一樣...
- 一個人開發要多久?那再多找兩個人是不是可以縮短成半個月?
結論
- 行政喜歡欺負學生(一打三)← 我不是葉問 ORZ...
- 行政搞不清楚狀況
- 行政怕老師 ← 老師出手,便知有沒有(誤
- 與非資訊人員溝通上的困難
說好的 offer 呢 XD?
美好的專案
靜態網站鏡射
舊式網站在 Google 協做平台,對岸無法開啟
生醫計畫其中一部分
網站架設
重點:委託者是系上老師!
臨時工讀金 offer 隨你填
朝爽 der~
Q & A
大學接案史
By peter279k
大學接案史
在大學那幾年中接案所發生的 " 趣事 "
- 1,238