0 から 1 まで: ジムのパーソナル トレーナーの任命アプレット開発ノート

開発背景

現代の「痩身ブーム」の影響で、運動や減量を目的にジムに通う人の数も増えており、ジムの経営はある程度難しくなってきています。そのため、ジムの予約のための小規模なプログラムを開発することが役立ちます。時間を使う。

概要設計

このプロジェクトは、ユーザー エンド、コーチ エンド、バックエンド エンドの 3 つのコンポーネントに分かれています。

  • バックエンド: コーチの基本情報、アカウント番号、ログインパスワードなどを追加および設定できます。
  • コーチ端末:お客様の個人情報(アバター、自己紹介、スター評価など)の編集、予約タイムスケジュール(予約可能時間帯、各時間帯の人数制限)の設定、ユーザーの予約コードのキャンセルがその場で行えます。
  • ユーザー端末:ご希望のコーチと時間帯を選択し、注文・予約を行ってください。予約が完了したら、ジムに行き、コーチまたはスタッフに予約コードを提示して確認してください。

テクノロジーの選択

  • このプロジェクトは、WeChat ミニ プログラム プラットフォームを使用して開発されています。
  • Tencent の特殊な小規模プログラム クラウド開発テクノロジーを使用することで、クラウド リソースにはクラウド機能、データベース、帯域幅、ストレージ スペース、タイマーなどが含まれます。リソース クォータは低価格で、ドメイン名やサーバーなしで構築できます。
  • ミニ プログラム自体はすぐに使用でき、ガジェットの使用シナリオに適しており、迅速な開発と反復にも適しています。
  • クラウド開発技術はテンセントの内部リンクを使用しているため、ハッカーによる攻撃のリスクがなく、DDOS攻撃がなく、ファイアウォールのコストが節約され、高いセキュリティとメンテナンスが不要です。リソース収容力は、ビジネス開発のニーズに応じていつでも柔軟に拡張できます。

データベース設計

`MeetModel.DB_STRUCTURE = { _pid: 'string|true', MEET_ID: 'string|true', MEET_ADMIN_ID: 'string|true|comment=追加された管理者', MEET_TITLE: 'string|true|comment=タイトル',

MEET_JOIN_FORMS: 'array|true|default=[]|comment=表单字段设置',
MEET_DAYS: 'array|true|default=[]|comment=最近一次修改保存的可用日期',

MEET_CATE_ID: 'string|true|comment=分类编号',
MEET_CATE_NAME: 'string|true|comment=分类冗余', 

MEET_FORMS: 'array|true|default=[]',
MEET_OBJ: 'object|true|default={}',  

MEET_CANCEL_SET: 'int|true|default=1|comment=取消设置 0=不允,1=允许,2=仅开始前可取消',

MEET_STATUS: 'int|true|default=1|comment=状态 0=未启用,1=使用中,9=停止预约,10=已关闭',
MEET_ORDER: 'int|true|default=9999',
MEET_VOUCH: 'int|true|default=0',

MEET_QR: 'string|false',

MEET_PHONE: 'string|false|comment=登录手机',
MEET_PASSWORD: 'string|false|comment=登录密码',
MEET_TOKEN: 'string|false|comment=当前登录token',
MEET_TOKEN_TIME: 'int|true|default=0|comment=当前登录token time',
MEET_MINI_OPENID: 'string|false|comment=小程序openid',
MEET_LOGIN_CNT: 'int|true|default=0|comment=登陆次数',
MEET_LOGIN_TIME: 'int|false|comment=最近登录时间',


MEET_ADD_TIME: 'int|true',
MEET_EDIT_TIME: 'int|true',
MEET_ADD_IP: 'string|false',
MEET_EDIT_IP: 'string|false',

};`

技術的な問題

`// ユーザー予約ロジック async join(userId, meeId, timeMark, FormsList) { // 予約期間が存在するかどうか let meetsWhere = { _id: meetsId }; let day = this.getDayByTimeMark(timeMark); let meet = await this. getMeetOneDay (meetId、日、meetWhere);

	if (!meet) {
		this.AppError('预约时段选择错误1,请重新选择');
	}

	let daySet = this.getDaySetByTimeMark(meet, timeMark);
	if (!daySet)
		this.AppError('预约时段选择错误2,请重新选择');

	let timeSet = this.getTimeSetByTimeMark(meet, timeMark);
	if (!timeSet)
		this.AppError('预约时段选择错误3,请重新选择');

	// 规则校验
	await this.checkMeetRules(userId, meetId, timeMark, formsList);


	let data = {};

	data.JOIN_USER_ID = userId;
	data.JOIN_MEET_ID = meetId;
	data.JOIN_MEET_CATE_ID = meet.MEET_CATE_ID;
	data.JOIN_MEET_CATE_NAME = meet.MEET_CATE_NAME;
	data.JOIN_MEET_TITLE = meet.MEET_TITLE;
	data.JOIN_MEET_DAY = daySet.day;
	data.JOIN_MEET_TIME_START = timeSet.start;
	data.JOIN_MEET_TIME_END = timeSet.end;
	data.JOIN_MEET_TIME_MARK = timeMark;
	data.JOIN_START_TIME = timeUtil.time2Timestamp(daySet.day + ' ' + timeSet.start + ':00');
	data.JOIN_STATUS = JoinModel.STATUS.SUCC;
	data.JOIN_COMPLETE_END_TIME = daySet.day + ' ' + timeSet.end;

	// 入库
	for (let k = 0; k < formsList.length; k++) {
		let forms = formsList[k];
		data.JOIN_FORMS = forms;
		data.JOIN_OBJ = dataUtil.dbForms2Obj(forms);
		data.JOIN_CODE = dataUtil.genRandomIntString(15);
		await JoinModel.insert(data);
	}


	// 统计
	this.statJoinCnt(meetId, timeMark);

	return {
		result: 'ok',
	}
}`

UIデザイン(ユーザー側)

UIデザイン(コーチ側)

gitコード

ライナスは、カーネル開発者がタブをスペースに置き換えるのを防ぐことに自ら取り組みました。 彼の父親はコードを書くことができる数少ないリーダーの 1 人であり、次男はオープンソース テクノロジー部門のディレクターであり、末息子はオープンソース コアです。寄稿者Robin Li: 自然言語 新しいユニバーサル プログラミング言語になるでしょう。オープン ソース モデルは Huawei にますます後れをとっていきます 。一般的に使用されている 5,000 のモバイル アプリケーションを Honmeng に完全に移行するには 1 年かかります。 リッチテキスト エディタ Quill 2.0 リリースされ、機能、信頼性、開発者は「恨みを取り除く ために握手を交わしました。 Laoxiangji のソースはコードではありませんが、その背後にある理由は非常に心温まるものです。Googleは大規模な組織再編を発表しました。
{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/3808186/blog/7364443