<p align="center">
<a href="https://github.com/zzjoey/Leava">
<img src="https://github.com/zzjoey/Leava/blob/master/docs/logo/Leava.png" width="152">
</a>
<h1 align="center">Leava</h1>
<p align="center">
<a href="https://github.com/zzjoey/Leava/blob/master/LICENSE_cn"><img src="https://img.shields.io/badge/%E8%AE%B8%E5%8F%AF%E8%AF%81-%E5%8F%8D996-red.svg?style=popout-square"></a>
<!-- <a href="https://github.com/zzjoey/Leava/blob/master/README_en.md"><img src="https://img.shields.io/badge/doc-English-blue.svg?style=popout-square"></a> -->
<!-- <a href="http://hits.dwyl.io/zzjoey/Leava" alt="hit count"><img src="http://hits.dwyl.io/joey66666/Leava.svg" /></a> -->
</p>
<p align="center">
åºäºFlask + MySQLçå¨çº¿è¯·å微信å°ç¨åº<br>
</p>
</p>
[English Version](https://github.com/zzjoey/Leava/blob/master/README_en.md)
### ðð»ä»åºè·¯å¾å£°æ
- [frontend](https://github.com/zzjoey/Leava/tree/master/frontend) 为微信å°ç¨åºæºä»£ç
- [backend](https://github.com/zzjoey/Leava/tree/master/backend) 为å端æºä»£ç å`db` `sql`è¯å¥
- [docs](https://github.com/zzjoey/Leava/tree/master/docs) 为ææ¡£ï¼åè½æµç¨ï¼æ¶æ设计ï¼UI
### ð¡å¦ä½å¯å¨
[æ建æå](https://github.com/joey66666/Leava/issues/10)
ä»»ä½é®é¢è¯·å¨[Discussions](https://github.com/joey66666/Leava/discussions)ä¸æé®
API
| URL | explanation |
| ---------------------------- | ------------------------------------------------------------ |
| /login | post ('userId', 'userPwd'); return (flag etc) |
| /student/ask_leave | post ('student_id','start_time','end_time','reason','flag','teacher1_id','teacher2_id','type','ensure'); return (True \ False) |
| /student/search_leave | post ('student_id'), return ('leave_num','student_id','start_time','end_time','reason','flag','teacher1_id','teacher2_id','type','ensure') |
| /student/search_leave_detail | post('student_id'), return ('student_id','class','name','room') |
| /teacher/search_leave | post('teacher_id'), return('leave_num','student_id','start_time','end_time','reason','flag','teacher1_id','teacher2_id','type','ensure') |
| /teacher/update_leave | post('leave_num','flag'); return (True / False) |
| /teacher2/search_leave | post('teacher_id'), return ('leave_num','student_id','start_time','end_time','reason','flag','teacher1_id','teacher2_id','type','ensure') |
| /teacher/search_id | post('school'), return ('teacher_id','name','role') |
| /pwd | post('userId','userPwd') return (True / False) |
| /name | post('name'), return ('leave_num','student_id','start_time','end_time','reason','flag','teacher1_id','teacher2_id','type','ensure','class','school','room') |
### ð£ç¨æ·éæ±ï¼
- å¦çæ交请å请æ±ï¼æ¥çèªå·±ç请å详æ
å请åæ¯å¦è¢«æ¹åçæ
åµ
- è¾
导å管çå¦çç请å请æ±ï¼æ¥çå¦ç请åè®°å½
- 任课èå¸æ¥æ¥çå¦çç请å请æ±åæ¯å¦è¢«æ¹åæ
åµ
### ð¥ç¨æ·èº«ä»½
1. å¦çï¼ç¨æ·å为å¦å·ï¼ é¿åº¦9ä½
2. è¾
导åï¼ç¨æ·å为工å·ï¼ é¿åº¦6ä½
3. 任课æå¸ï¼ç¨æ·å为工å·ï¼ é¿åº¦6ä½
### ð ææ¯æ
å端ï¼å¾®ä¿¡å°ç¨åº
å端ï¼Flask+微信äºå¼åï¼ä¸ä¼ å¾çåè½ä½¿ç¨äºå¼åï¼å
¶ä»åè½ä½¿ç¨Flaskï¼
æ°æ®åºï¼MySQL
### ð¸æç»ææ
![demo](https://github.com/joey66666/Leava/blob/master/docs/final_demo.jpg)
[More screen shots](https://github.com/joey66666/Leava/tree/master/docs/screenshot)
### ðåè½æµç¨
![åè½æµç¨](https://github.com/zzjoey/Leava/blob/master/docs/%E5%8A%9F%E8%83%BD%E6%B5%81%E7%A8%8B.jpg)
### ð©æ¶æ设计
![ æ¶æ设计](https://github.com/zzjoey/Leava/blob/master/docs/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1.jpg)
### ðð»è´è°¢
[Fuhaixu](https://github.com/Fuhaixu)ãZYNã[xuyongxiang](https://github.com/xuyongxiang134)