一度,deta.spaceで完成しましたが、pythonanywhereでやり直しました
本当に作ってみたらどうかなるか掘ってみた
設計の全体像
管理人無しで自主管理できる写真配布サイト 会員登録は必要だが、メールチェックまでは行わない 会員はだれでも写真をまとめるイベントを作成できる(例:山田中学校 秋の大運動会) イベントを作った人が主催者となる イベントは全体で10個まで作成できる 1イベントに写真が登録できる イベントは初期は10日間公開できる(途中でその日から1週間延期できる) 他人が作成したイベントの名前の一覧を見ることができる 他人が作成したイベントに参加希望を出せる 参加希望されたイベントの主催者が参加の許可、拒否を決めることができる 参加すると写真の参照、ダウンロード(右クリック)、登録ができる 自分で登録した写真は、削除することができる 期限が過ぎたイベントとその写真は自動で削除される(誰かのLOGOUTのタイミング) 管理人用のプログラムは作成しない(省略します) このプログラムは事前連絡なく削除される可能性があります 良俗に違反する写真は私が勝手に削除します サンプルです。本気で使わないでください
大きな写真に対するの注意点
処理はあまり速くありません。なのであまり大きな写真は使わないようにしましょう。 ファイルはそのままのサイズでuploadしますが、pythonの処理でPillowを使って圧縮を試みています。 ただし必ず成功するとは限らないので失敗したら圧縮なしとなります。
作るべきクラス
データベースの管理 - db このシステム専用のデータベースの処理 - PADb ユーザー登録用のクラス - user イベント管理用のクラス - event イベントの写真をデータベース管理するクラス - photoBase イベント参加依頼のクラス - paticip
作るべき画面
ログイン - login サインアップ済 - signup イベント、許可一覧 - index イベント写真(削除)一覧 - photos 写真追加 - photoadd イベント作成、修正 - event イベント参加要請 - request イベント参加許可 - paticip
作るべきデータベース
users - create table if not exists users (ukey int not null auto_increment primary key, uid varchar(30) not null, pass varchar(255) not null) events - create table if not exists events (ekey int not null auto_increment primary key, comment varchar(50), email varchar(255), eventname varchar(50), firstDay date, ownername varchar(30), limitdate date, paticip varchar(255)) photos - create table if not exists photos (pkey int not null auto_increment primary key, comment varchar(50), pdate datetime, eventID int, filename varchar(80), fromId varchar(30)) paticip - create table if not exists paticip (ckey int not null auto_increment primary key, eventID int, eventname varchar(50), userID varchar(30), rmemo varchar(100))