This commit is contained in:
louiscklaw
2025-02-01 02:04:37 +08:00
commit 6da7dca3e7
1479 changed files with 330407 additions and 0 deletions

31
.gitattributes vendored Normal file
View File

@@ -0,0 +1,31 @@
*.mp4 filter=lfs diff=lfs merge=lfs
*.zip filter=lfs diff=lfs merge=lfs
*.7z filter=lfs diff=lfs merge=lfs
*.tar.gz filter=lfs diff=lfs merge=lfs
*.jpg filter=lfs diff=lfs merge=lfs
*.png filter=lfs diff=lfs merge=lfs
*.avif filter=lfs diff=lfs merge=lfs
*.webm filter=lfs diff=lfs merge=lfs
*.mkv filter=lfs diff=lfs merge=lfs
# Documents
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
*.gif filter=lfs diff=lfs merge=lfs
*.GIF filter=lfs diff=lfs merge=lfs
*.bmp filter=lfs diff=lfs merge=lfs
*.BMP filter=lfs diff=lfs merge=lfs
*.tiff filter=lfs diff=lfs merge=lfs
*.TIFF filter=lfs diff=lfs merge=lfs
*.wav filter=lfs diff=lfs merge=lfs
*.WAV filter=lfs diff=lfs merge=lfs
*.log filter=lfs diff=lfs merge=lfs

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
**/~*.*

View File

@@ -0,0 +1,12 @@
# EditorConfig is awesome: https://EditorConfig.org
# top-most EditorConfig file
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

172
School-Management-System/.gitignore vendored Normal file
View File

@@ -0,0 +1,172 @@
*del
storage
# Created by https://www.toptal.com/developers/gitignore/api/node,laravel
# Edit at https://www.toptal.com/developers/gitignore?templates=node,laravel
### Laravel ###
/vendor/
node_modules/
npm-debug.log
yarn-error.log
# Laravel 4 specific
bootstrap/compiled.php
app/storage/
# Laravel 5 & Lumen specific
public/storage
public/hot
# Laravel 5 & Lumen specific with changed public path
public_html/storage
public_html/hot
storage/*.key
.env
Homestead.yaml
Homestead.json
/.vagrant
.phpunit.result.cache
### Node ###
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional stylelint cache
.stylelintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variable files
.env.development.local
.env.test.local
.env.production.local
.env.local
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# vuepress v2.x temp and cache directory
.temp
# Docusaurus cache and generated files
.docusaurus
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
### Node Patch ###
# Serverless Webpack directories
.webpack/
# Optional stylelint cache
# SvelteKit build / generate output
.svelte-kit
# End of https://www.toptal.com/developers/gitignore/api/node,laravel

View File

View File

@@ -0,0 +1,21 @@
{
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "format_blade",
"path": "src",
"problemMatcher": [],
"label": "npm: format_blade - src",
"detail": "prettier --write ./**/example-app/**/*.blade.php"
},
{
"type": "npm",
"script": "format_php",
"path": "src",
"problemMatcher": [],
"label": "npm: format_php - src",
"detail": "prettier --write ./**/example-app/**/*.php"
}
]
}

View File

@@ -0,0 +1,95 @@
# README
## To start develop environment
## Production
TODO: fill production steps here, windows
```bash
# docker-compose.prod.yml ?
```
## Development
### Using windows
```bash
# For windows,
# on project root directory, under windows command prompt
>.\scripts\up.ps1
# For Linux,
$ ./scripts/up.sh
# inside docker, run
/app$ ./dev.sh
# follow setup steps inside docker prompt
# ...
# ...
Do you really wish to run this command? (yes/no) [no]
# answer -> yes
# ...
# ...
# setup steps complete
# browse localhost:8000
```
### Using linux
```shell
# for linux machine
$ cd src
$ ./up.sh
# inside docker
# options :
# 1. to start laravel only:
$ ./dev.sh
# 2. to start refreshing when src update:
$ npm run dev
# brows:
# page http://localhost:3000
# mail test node http://localhost:8025
```
## pack for delivery
```bash
# under project root directory, run
>./pack_delivery.bat
# delivery file available on <PROJ_ROOT>\dist\delivery.zip
```
## report materials
- password reset email template:
- https://laravel.com/docs/10.x/passwords
- `php artisan make:notification ResetPasswordNotification`
- `php artisan vendor:publish --tag=laravel-notifications`
- mailhog
- https://github.com/barryvdh/laravel-dompdf
- https://www.positronx.io/laravel-pdf-tutorial-generate-pdf-with-dompdf-in-laravel/
- https://github.com/sparksuite/simple-html-invoice-template
## still useful ?
/home/logic/\_workspace/laravel-playlist/laravel-docker-helloworld/blog-stripe-tryout/php74-httpd/blog-stripe/resources/views/pages/home/index.blade.php
### references :
https://github.com/AngelJayMedia/blog-stripe
https://laravel.com/docs/10.x/controllers#basic-controllers

View File

@@ -0,0 +1,263 @@
<h1><a id="user-content-fyp" class="anchor" aria-hidden="true" href="#fyp"><span aria-hidden="true" class="octicon octicon-link"></span></a>FYP</h1>
<ul>
<li>Good day learning center by PHP and Mysql</li>
<li>28-Mar-2023, 1-Jun-2023</li>
<li><a href="https://github.com/lahirudanushka/School-Management-System---PHP-MySQL">https://github.com/lahirudanushka/School-Management-System---PHP-MySQL</a></li>
<li><a href="http://schoolms.gearhostpreview.com/" rel="nofollow">http://schoolms.gearhostpreview.com/</a></li>
</ul>
<h3><a id="user-content-網站名-good-day-learning-center-by-php-and-mysql" class="anchor" aria-hidden="true" href="#網站名-good-day-learning-center-by-php-and-mysql"><span aria-hidden="true" class="octicon octicon-link"></span></a>網站名: Good day learning center by PHP and Mysql</h3>
<h2><a id="user-content-時間" class="anchor" aria-hidden="true" href="#時間"><span aria-hidden="true" class="octicon octicon-link"></span></a>時間:</h2>
<ul>
<li>4 月 21 完成紅字既part (milestone 1)</li>
<li>6 月 1 完成埋剩餘既部分 (milestone 2)</li>
</ul>
<h2><a id="user-content-roles-of-users-and-the-functions" class="anchor" aria-hidden="true" href="#roles-of-users-and-the-functions"><span aria-hidden="true" class="octicon octicon-link"></span></a>Roles of users and the functions</h2>
<h3><a id="user-content-administrator" class="anchor" aria-hidden="true" href="#administrator"><span aria-hidden="true" class="octicon octicon-link"></span></a>Administrator</h3>
<ul>
<li>
<p>4月21</p>
<ul>
<li><del>Update, Add, Delete Subject (4月21)</del></li>
<li><del>Update, Add, Delete Schedule (4月21)</del></li>
<li><del>Update, Add, Delete Class room (4月21)</del></li>
<li><del>Update, Add, Delete Student (4月21)</del></li>
<li><del>Update, Add, Delete Teacher (4月21)</del></li>
<li><del>Update, Add, Delete User (4月21)</del></li>
</ul>
</li>
<li>
<p>6月1號</p>
<ul>
<li>
<p>Update, Add, Delete Attendance</p>
<ul>
<li><a target="_blank" rel="noopener noreferrer" href="img/admin-attendance-list.png"><img src="img/admin-attendance-list.png" alt="" style="max-width: 100%;"></a></li>
</ul>
</li>
<li>
<p>Update, Add, Delete Exam</p>
<ul>
<li><a target="_blank" rel="noopener noreferrer" href="img/admin-exam-list.png"><img src="img/admin-exam-list.png" alt="" style="max-width: 100%;"></a></li>
</ul>
</li>
<li>
<p>Update, Add, Delete Exam result</p>
<ul>
<li><a target="_blank" rel="noopener noreferrer" href="img/admin-exam-result-list.png"><img src="img/admin-exam-result-list.png" alt="" style="max-width: 100%;"></a></li>
</ul>
</li>
<li>
<p>Update, Add Payment info</p>
<ul>
<li><a target="_blank" rel="noopener noreferrer" href="img/admin-payment-info.png"><img src="img/admin-payment-info.png" alt="" style="max-width: 100%;"></a></li>
</ul>
</li>
<li>
<p>Print payment receipt</p>
<ul>
<li><a target="_blank" rel="noopener noreferrer" href="img/admin-print-recipt.png"><img src="img/admin-print-recipt.png" alt="" style="max-width: 100%;"></a></li>
</ul>
</li>
<li>
<p>Update, Add, Delete Student</p>
<ul>
<li>加多個subject既欄位, 比student揀反subject喺自己profile度.</li>
<li><a target="_blank" rel="noopener noreferrer" href="img/admin-edit-student.png"><img src="img/admin-edit-student.png" alt="" style="max-width: 100%;"></a></li>
</ul>
</li>
<li>
<p>Update, Add, Delete Teacher</p>
<ul>
<li>加多個subject既欄位, 比老師揀反subject喺自己profile度.</li>
<li><a target="_blank" rel="noopener noreferrer" href="img/teacher-edit-teacherinfo.png"><img src="img/teacher-edit-teacherinfo.png" alt="" style="max-width: 100%;"></a></li>
</ul>
</li>
<li>
<p>Update Add, Delete Schedule</p>
<ul>
<li>schedule 想有subject name, teacher name, classroom, day, start time and end time.</li>
</ul>
</li>
<li>
<p>Update, Add, Delete Class room</p>
<ul>
<li>classroom table list想show埋class room既location</li>
<li><a target="_blank" rel="noopener noreferrer" href="img/admin-classroom-list.png"><img src="img/admin-classroom-list.png" alt="" style="max-width: 100%;"></a></li>
</ul>
</li>
</ul>
</li>
</ul>
<h3><a id="user-content-teacher" class="anchor" aria-hidden="true" href="#teacher"><span aria-hidden="true" class="octicon octicon-link"></span></a>Teacher:</h3>
<ul>
<li>
<p>4月21</p>
<ul>
<li><del>Update , Add Student (4月21)</del></li>
<li><del>Update Teacher (4月21)</del></li>
<li><del>Update Subject (4月21)</del></li>
<li><del>Update Add, Delete Schedule (4月21)</del></li>
<li><del>View class room (4月21)</del></li>
</ul>
</li>
<li>
<p>6月1號</p>
<ul>
<li>
<p>Update <del>Add, Delete</del> Attendance</p>
<ol>
<li>list schedules ?</li>
<li>user click schedule to update</li>
<li>tick student</li>
<li>click update</li>
</ol>
</li>
<li>
<p>Update, Add, Delete Exam</p>
</li>
<li>
<p>Add Exam result</p>
<ul>
<li><a target="_blank" rel="noopener noreferrer" href="img/teacher-update-exam-result-list.png"><img src="img/teacher-update-exam-result-list.png" alt="" style="max-width: 100%;"></a></li>
<li><a target="_blank" rel="noopener noreferrer" href="img/teacher-update-exam-result-edit.png"><img src="img/teacher-update-exam-result-edit.png" alt="" style="max-width: 100%;"></a></li>
</ul>
</li>
<li>
<p>Send Notice to student and Administrator</p>
</li>
<li>
<p>Update , Add Student</p>
<ul>
<li>可以update student既class room, (classroom 跟 subject)</li>
<li>-&gt; update student既subject</li>
<li><a target="_blank" rel="noopener noreferrer" href="img/teacher-view-student-subject.png"><img src="img/teacher-view-student-subject.png" alt="" style="max-width: 100%;"></a></li>
<li><a target="_blank" rel="noopener noreferrer" href="img/teacher-edit-student-subject.png"><img src="img/teacher-edit-student-subject.png" alt="" style="max-width: 100%;"></a></li>
</ul>
</li>
<li>
<p>Update Teacher</p>
<ul>
<li>加多個subject既欄位, 比老師揀反subject喺自己profile度.</li>
<li><a target="_blank" rel="noopener noreferrer" href="img/update-teacher-info-with-subects.png"><img src="img/update-teacher-info-with-subects.png" alt="" style="max-width: 100%;"></a></li>
</ul>
</li>
<li>
<p>Update Add, Delete Schedule</p>
<ul>
<li>schedule 想有
<ul>
<li>subject name,</li>
<li>teacher name,</li>
<li>classroom,</li>
<li>day,</li>
<li>start time and</li>
<li>end time.</li>
<li><a target="_blank" rel="noopener noreferrer" href="img/schedule-update-with-teacher-student-display.png"><img src="img/schedule-update-with-teacher-student-display.png" alt="" style="max-width: 100%;"></a></li>
</ul>
</li>
</ul>
</li>
<li>
<p>View class room</p>
<ul>
<li>classroom table list想show埋class room既location
<ul>
<li><a target="_blank" rel="noopener noreferrer" href="img/teacher-classroom-table.png"><img src="img/teacher-classroom-table.png" alt="" style="max-width: 100%;"></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3><a id="user-content-student" class="anchor" aria-hidden="true" href="#student"><span aria-hidden="true" class="octicon octicon-link"></span></a>Student:</h3>
<ul>
<li>
<p>4月21</p>
<ul>
<li><del>View Schedule (4月21)</del></li>
</ul>
</li>
<li>
<p>6月1號</p>
<ul>
<li>View Notice
<ul>
<li><a target="_blank" rel="noopener noreferrer" href="img/view-notices.png"><img src="img/view-notices.png" alt="" style="max-width: 100%;"></a></li>
<li><a target="_blank" rel="noopener noreferrer" href="img/view-notice.png"><img src="img/view-notice.png" alt="" style="max-width: 100%;"></a></li>
</ul>
</li>
<li>View Exam Results
<ul>
<li><a href="http://localhost:3000/showStudentExamResults" rel="nofollow">http://localhost:3000/showStudentExamResults</a></li>
<li><a target="_blank" rel="noopener noreferrer" href="img/student-exam-results.png"><img src="img/student-exam-results.png" alt="" style="max-width: 100%;"></a></li>
<li><a target="_blank" rel="noopener noreferrer" href="img/student-exam-result.png"><img src="img/student-exam-result.png" alt="" style="max-width: 100%;"></a></li>
</ul>
</li>
</ul>
</li>
</ul>
<h3><a id="user-content-login-system" class="anchor" aria-hidden="true" href="#login-system"><span aria-hidden="true" class="octicon octicon-link"></span></a>Login system:</h3>
<ul>
<li>
<p>Registeration (註冊賬號)</p>
<ul>
<li><a target="_blank" rel="noopener noreferrer" href="img/register-triage.png"><img src="img/register-triage.png" alt="register-triage.png" style="max-width: 100%;"></a></li>
<li><a target="_blank" rel="noopener noreferrer" href="img/register-student.png"><img src="img/register-student.png" alt="register-student.png" style="max-width: 100%;"></a></li>
<li><a target="_blank" rel="noopener noreferrer" href="img/register-teacher.png"><img src="img/register-teacher.png" alt="register-teacher.png" style="max-width: 100%;"></a></li>
</ul>
</li>
<li>
<p>forgot password (忘記密碼)</p>
<ul>
<li>
<a target="_blank" rel="noopener noreferrer" href="img/recover-password.png"><img src="img/recover-password.png" alt="" style="max-width: 100%;"></a> <a target="_blank" rel="noopener noreferrer" href="img/password-recovery-email.png"><img src="img/password-recovery-email.png" alt="" style="max-width: 100%;"></a>
</li>
</ul>
</li>
<li>
<p>如果打錯賬號密碼會有 error prompt 出來</p>
<ul>
<li>
<p><a target="_blank" rel="noopener noreferrer" href="img/wrong-password.png"><img src="img/wrong-password.png" alt="" style="max-width: 100%;"></a></p>
</li>
<li>
<p>User申請完成之後用反自己account登入系統.</p>
</li>
<li>
<p>每個user都有自己獨立的account.</p>
</li>
</ul>
</li>
</ul>
<h2><a id="user-content-ui" class="anchor" aria-hidden="true" href="#ui"><span aria-hidden="true" class="octicon octicon-link"></span></a>UI:</h2>
<ul>
<li>簡潔就可</li>
<li><a target="_blank" rel="noopener noreferrer" href="./UI.png"><img src="./UI.png" alt="" style="max-width: 100%;"></a></li>
</ul>
<h2><a id="user-content-docs" class="anchor" aria-hidden="true" href="#docs"><span aria-hidden="true" class="octicon octicon-link"></span></a>DOCS:</h2>
<ul>
<li>Project Proposal</li>
<li>Initial Report~</li>
<li>prototype Demo - 1st version</li>
<li>之後六月再做好另外果一半既網站,
<ul>
<li>先交document and user guide</li>
</ul>
</li>
<li>當save或者edit完一個item既時候,
<ul>
<li>喺畫面上面show save successfully or failed.</li>
</ul>
</li>
</ul>
<h2><a id="user-content-schema" class="anchor" aria-hidden="true" href="#schema"><span aria-hidden="true" class="octicon octicon-link"></span></a>schema:</h2>
<ul>
<li>show tables used
<ul>
<li>e.g. <code>2023_03_29_171749_create_notice_student_rel.php</code>
</li>
</ul>
</li>
</ul>

View File

@@ -0,0 +1,165 @@
# FYP
- Good day learning center by PHP and Mysql
- 28-Mar-2023, 1-Jun-2023
- https://github.com/lahirudanushka/School-Management-System---PHP-MySQL
- http://schoolms.gearhostpreview.com/
### 網站名: Good day learning center by PHP and Mysql
## 時間:
- 4 月 21 完成紅字既 part (milestone 1)
- 6 月 1 完成埋剩餘既部分 (milestone 2)
## Roles of users and the functions
### Administrator
- 4 月 21
- ~~Update, Add, Delete Subject (4 月 21)~~
- ~~Update, Add, Delete Schedule (4 月 21)~~
- ~~Update, Add, Delete Class room (4 月 21)~~
- ~~Update, Add, Delete Student (4 月 21)~~
- ~~Update, Add, Delete Teacher (4 月 21)~~
- ~~Update, Add, Delete User (4 月 21)~~
- 6 月 1 號
- Update, Add, Delete Attendance
- ![](img/admin-attendance-list.png)
- Update, Add, Delete Exam
- ![](img/admin-exam-list.png)
- Update, Add, Delete Exam result
- ![](img/admin-exam-result-list.png)
- Update, Add Payment info
- ![](img/admin-payment-info.png)
- Print payment receipt
- ![](img/admin-print-recipt.png)
- Update, Add, Delete Student
- 加多個 subject 既欄位, 比 student 揀反 subject 喺自己 profile 度.
- ![](img/admin-edit-student.png)
- Update, Add, Delete Teacher
- 加多個 subject 既欄位, 比老師揀反 subject 喺自己 profile 度.
- ![](img/teacher-edit-teacherinfo.png)
- Update Add, Delete Schedule
- schedule 想有 subject name, teacher name, classroom, day, start time and end time.
- Update, Add, Delete Class room
- classroom table list 想 show 埋 class room 既 location
- ![](img/admin-classroom-list.png)
### Teacher:
- 4 月 21
- ~~Update , Add Student (4 月 21)~~
- ~~Update Teacher (4 月 21)~~
- ~~Update Subject (4 月 21)~~
- ~~Update Add, Delete Schedule (4 月 21)~~
- ~~View class room (4 月 21)~~
- 6 月 1 號
- Update ~~Add, Delete~~ Attendance
1. list schedules ?
1. user click schedule to update
1. tick student
1. click update
- Update, Add, Delete Exam
- Add Exam result
- ![](img/teacher-update-exam-result-list.png)
- ![](img/teacher-update-exam-result-edit.png)
- Send Notice to student and Administrator
- Update , Add Student
- 可以 update student 既 class room, (classroom 跟 subject)
- -> update student 既 subject
- ![](img/teacher-view-student-subject.png)
- ![](img/teacher-edit-student-subject.png)
- Update Teacher
- 加多個 subject 既欄位, 比老師揀反 subject 喺自己 profile 度.
- ![](img/update-teacher-info-with-subects.png)
- Update Add, Delete Schedule
- schedule 想有
- subject name,
- teacher name,
- classroom,
- day,
- start time and
- end time.
- ![](img/schedule-update-with-teacher-student-display.png)
- View class room
- classroom table list 想 show 埋 class room 既 location
- ![](img/teacher-classroom-table.png)
### Student:
- 4 月 21
- ~~View Schedule (4 月 21)~~
- 6 月 1 號
- View Notice
- ![](img/view-notices.png)
- ![](img/view-notice.png)
- View Exam Results
- http://localhost:3000/showStudentExamResults
- ![](img/student-exam-results.png)
- ![](img/student-exam-result.png)
### Login system:
- Registeration (註冊賬號)
- ![register-triage.png](img/register-triage.png)
- ![register-student.png](img/register-student.png)
- ![register-teacher.png](img/register-teacher.png)
- forgot password (忘記密碼)
- ![](img/recover-password.png) ![](img/password-recovery-email.png)
- 如果打錯賬號密碼會有 error prompt 出來
- ![](img/wrong-password.png)
- User 申請完成之後用反自己 account 登入系統.
- 每個 user 都有自己獨立的 account.
## UI:
- 簡潔就可
- ![](./UI.png)
## DOCS:
- Project Proposal
- Initial Report~
- prototype Demo - 1st version
- 之後六月再做好另外果一半既網站,
- 先交 document and user guide
- 當 save 或者 edit 完一個 item 既時候,
- 喺畫面上面 show save successfully or failed.
## schema:
- show tables used
- e.g. `2023_03_29_171749_create_notice_student_rel.php`
## remarks
- to change logo in printed pdf

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
School-Management-System/_hidden/img - Copy/view-notice.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
School-Management-System/_hidden/img - Copy/view-notices.png (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
School-Management-System/_hidden/img/admin-edit-student.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
School-Management-System/_hidden/img/admin-edit-teacher.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
School-Management-System/_hidden/img/admin-exam-list.png (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

BIN
School-Management-System/_hidden/img/admin-payment-info.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
School-Management-System/_hidden/img/admin-print-recipt.png (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

BIN
School-Management-System/_hidden/img/recover-password.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
School-Management-System/_hidden/img/register-student.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
School-Management-System/_hidden/img/register-teacher.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
School-Management-System/_hidden/img/register-triage.png (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

BIN
School-Management-System/_hidden/img/student-exam-result.png (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
School-Management-System/_hidden/img/view-notice.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
School-Management-System/_hidden/img/view-notices.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
School-Management-System/_hidden/img/wrong-password.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
# sudo npm install markdown-to-html -g
github-markdown digest.md > digest.html

View File

@@ -0,0 +1,12 @@
{
"name": "_hidden",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"gitUpdate": "git add . && git commit -m\"update docs,\""
},
"keywords": [],
"author": "",
"license": "ISC"
}

View File

@@ -0,0 +1,10 @@
<?php
$a = [1,2,3,4,5];
if (in_array(1, $a)){
echo 'helloworld 1';
}
if (in_array(10, $a)){
echo 'helloworld 10';
}

View File

@@ -0,0 +1,10 @@
<?php
$a = [1,2,3,4,5];
if (in_array(1, $a)){
echo 'helloworld 1';
}
if (in_array(10, $a)){
echo 'helloworld 10';
}

BIN
School-Management-System/_hidden/tour/tour1-handdraft.jpg (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,48 @@
# for Teacher update exam result
teacher (`amy_tsui@school.com` / `amy_tsui`)
student (`john_ho@school.com/john_ho`)
1. teacher: add new exam `tourism and hospital mid term exam`
- add remarks as well `tourism and hospital mid term exam`
1. teacher: edit just created exam -> add members
1. teacher: add student `john_ho@school.com`
- that means john_ho@school.com in the exam
1. change to student view (`john_ho@school.com/john_ho`)
1. student: look exam overview show on dashboard
- 1 exam exist
1. 現實世界 __wait for exam complete__
1. 咁呀 john_ho 等緊 result 喇喎
1. 咁呢result 就出左黎嘞...
1. teacher:
- click exam result -> Exam `tourism and hospital mid term exam`
- update result of `john_ho@school.com` -> 78
1. student: click exam result
- refresh exam result
- found Exam `tourism and hospital mid term exam` result
1. 咁如果老師踼第二個 test 去比阿 `john_ho@school.com`
1. teacher: click exam on sidebar
- click science mid term
- click `edit`
- add `john_ho@school.com`
- click `save`
- click `exam results` on sidebar
- click `update results` on Science mid term
- update `john_ho@school.com` exam result.
- click `save`
-
1. student: click `exam results` on sidebar
- `Science mid term` and result updated.
1. end

BIN
School-Management-System/_hidden/tour/tour2-handdraft.jpg (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,23 @@
# Teacher send notice to student
teacher (`amy_tsui@school.com` / `amy_tsui`)
student (`john_ho@school.com/john_ho`)
1. teacher: add new notice
1. add new notice
- select `john_ho@school.com` from student list
- fill subject `A warm greetings from teacher`(__REQUIRED !!!__)
- fill content `Hello welcome to the class` (__REQUIRED !!!__)
1. click `add` button
1. student:
1. on dashboard page
- new notice found (notice count on left side bar notice button +1)
1. click notice button on left side bar
1. read new notice
- click read button
1. click back
1. new notice remains = 1
1. end

BIN
School-Management-System/_hidden/tour/tour3-handdraft.jpg (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,45 @@
# Teacher take attendance
## characters:
1. teacher (`amy_tsui@school.com` / `amy_tsui`)
1. student_john (`john_ho@school.com/john_ho`)
1. student_sarah (`sarah_fung@school.com/sarah_fung`)
## steps:
1. teacher: click left sidebar `Apply schedule`
1. tick `Design and Technology`
1. click `save`
1. back to dashboard
1. `schedule overview` -> `Design and Technology` have been added !
1. student_john: click left sidebar `Apply subject`
1. tick `Design and Technology`
1. click `save`
1. back to dashboard
1. `schedule overview` -> `Design and Technology` have been added !
1. student_sarah: click left sidebar `Apply subject`
1. tick `Design and Technology`
1. click `save`
1. back to dashboard
1. `schedule overview` -> `Design and Technology` have been added !
1. teacher: `Applicable schedule`
1. find `Subject: Design and Technology Course`
1. click `update attendance`
1. tick `present`
1. click `save`
1. redirect to `Applicable schedule`
1. click `view attendance`
1. `john_ho@school.com` present
1. `sarah_fung@school.com` not present
1. end

View File

@@ -0,0 +1,19 @@
{
"child": {
"directory": "/home/logic",
"height": 1001,
"profile": "2b7c4080-0ddd-46c5-8f23-563fd3ba789d",
"readOnly": false,
"synchronizedInput": true,
"type": "Terminal",
"uuid": "685da7dd-8bf6-43ef-9cca-48aacd2674f7",
"width": 1920
},
"height": 1001,
"name": "${title}",
"synchronizedInput": false,
"type": "Session",
"uuid": "cf916fe7-de45-43d8-879e-64c3b141b152",
"version": "1.0",
"width": 1920
}

View File

@@ -0,0 +1,9 @@
# CREDIT: https://github.com/shren207/nextjs-docker-compose
# Dockerfile
FROM node:18-buster
RUN mkdir -p /app/node_modules
RUN chown 1000:1000 -R /app
WORKDIR /app
USER 1000:1000

View File

@@ -0,0 +1,3 @@
{
"salt": "6afd70ebde4e587a19a4631b70ff6112"
}

View File

@@ -0,0 +1,5 @@
#!/usr/bin/env bash
set -ex
npm i
npm run start

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,17 @@
{
"name": "app",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "http-server --cors ./public"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"http-server": "^14.1.1",
"serve": "^14.2.0"
}
}

View File

@@ -0,0 +1,75 @@
# readme.md
## 網站名:
- Good day learning center by PHP and Mysql
## Defects (Outstandings)
1. 當我改左 subject 既 title, 但係出面 schedule 喺唔會更改
- https://youtu.be/0Lts3iMzqUs
1. um 我諗按完 save 之後,畫面會 refresh然後keep住係原畫面show到新改既嘢就ok。有冇得係整個prompt show save success
- teacher info
- https://youtu.be/YRzqNcW78NI
- student info
- https://youtu.be/7GqNrjmVN_0
1. 當係 apply schedule 裡面按左save既時候會彈出去主頁
- https://youtu.be/s363X4iON4g
1. 我地發現之前比你果個project既requirement 太簡潔🤣 可能要加番啲內容例如大家可以用自己account login老師整番幾個dept學生個schedule table要detail啲同埋個網站要加番啲msg
## 時間:
- 4月21 - (milestone 1)
- 5月20 - (milestone 2)
## Roles of users and the functions
### Administrator
- (4月21)
- [x] Update, Add, Delete Subject (4月21)
- [x] Update, Add, Delete Schedule (4月21)
- [x] Update, Add, Delete ClassRoom (4月21)
- [x] Update, Add, Delete Student (4月21)
- [x] Update, Add, Delete Teacher (4月21)
- 5月20
- Update, Add, Delete Attendance
- Update, Add, Delete Exam
- Update, Add, Delete ExamResult
- Update, Add Payment info
- Print payment receipt
### Teacher:
- 4月21
- Update , Add Student (4月21)
- Update Teacher (4月21)
- Update Subject (4月21)
- Update Add, Delete Schedule (4月21)
- View class room (4月21)
- 5月20
- Update Add, Delete Attendance
- Update, Add, Delete Exam
- Add Exam result
- Send Notice to student and Administrator
### Student:
- 4月21
- View Schedule (4月21)
- 5月20
- View Notice
- View Exam Results
## UI:
- 簡潔就可
- ![](./UI.png)
## DOCS:
- Project Proposal
- Initial Report~
- prototype Demo - 1st version
- 之後六月再做好另外果一半既網站,
- 先交document and user guide

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,560 @@
/*
"GitHub Flavor", a GitHub flavored CSS style sheet for Markdown documents.
Based on Chris Patuzzo's github.css (https://gist.github.com/tuzz/3331384).
author: Fabrizio Musacchio (https://www.fabriziomusacchio.com)
date: 03.01.2020
License:
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
/*Main body*/
body {
font-family: Helvetica, arial, sans-serif;
font-size: 14px;
line-height: 1.4em;
background-color: white;
padding-top: 10px;
padding-bottom: 10px;
padding-left: 25px;
padding-right: 25px; }
body > *:first-child {
margin-top: 0 !important; }
body > *:last-child {
margin-bottom:0 !important; }
/* Smooth scrolling */
@media screen and (prefers-reduced-motion: no-preference) {
html {
scroll-behavior: smooth;
}
}
/*Links*/
a {
color: #3973ad;
text-decoration: none;}
a:hover{
/* text-decoration: underline; */
color: #4183C4;
}
a.absent {
color: #cc0000; }
a.anchor {
display: block;
padding-left: 30px;
margin-left: -30px;
cursor: pointer;
position: absolute;
top: 0;
left: 0;
bottom: 0; }
/*Headlines*/
h1, h2, h3, h4, h5, h6 {
margin: 20px 0 10px;
padding: 0;
line-height: 1.4em;
font-weight: bold;
-webkit-font-smoothing: antialiased;
cursor: text;
position: relative; }
h1 tt, h1 code {
font-size: inherit; }
h2 tt, h2 code {
font-size: inherit; }
h3 tt, h3 code {
font-size: inherit; }
h4 tt, h4 code {
font-size: inherit; }
h5 tt, h5 code {
font-size: inherit; }
h6 tt, h6 code {
font-size: inherit; }
h1 {
font-size: 28px;
color: black; }
h2 {
font-size: 24px;
border-bottom: 1px solid #cccccc;
color: black; }
h3 {
font-size: 18px; }
h4 {
font-size: 16px; }
h5 {
font-size: 14px; }
h6 {
color: #777777;
font-size: 14px; }
p, blockquote, ul, ol, dl, li, table, pre {
margin: 15px 0; }
/*Margins and paddings of the first line content*/
body > h2:first-child {
margin-top: 0;
padding-top: 0; }
body > h1:first-child {
margin-top: 0;
padding-top: 0; }
body > h1:first-child + h2 {
margin-top: 0;
padding-top: 0; }
body > h3:first-child, body > h4:first-child, body > h5:first-child, body > h6:first-child {
margin-top: 0;
padding-top: 0; }
a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 {
margin-top: 0;
padding-top: 0; }
h1 p, h2 p, h3 p, h4 p, h5 p, h6 p {
margin-top: 0;
}
/*Lists*/
ul li,ol li{
margin-top: .15em;
margin-bottom: .15em;
}
ul li li{
margin-left: -15px;
}
ul ul,ul ol,ol ol,ol ul{
margin-top: 0;
margin-bottom: 0em;
}
/*Footnotes*/
a[href^="#fn:"]:after{
content: ')';
font-size: 0.83em;
vertical-align: super;
line-height: 0;
}
/*Highlights the BG of current jumped-to footnote:*/
li:target {
background-color: #e8fef6;
}
.footnotes > ol > li > p {
display: inline;
}
.footnotes ol {
list-style: none;
counter-reset: footnotes;
padding-left: 15px;
}
.footnotes ol li {
counter-increment:footnotes;
}
.footnotes ol li:before {
/* background-color: #e8fef6; */
font-weight: bold;
/* counter-reset: footnotes; */
content: counters(footnotes, ".") ")";
}
.footnotes li {
padding-bottom: 0.45em;
}
.footnotes {
/* only use is for border, background-color of block */
/* border: dashed 0px #f4f5f8; */
background-color: #f4f5f8;
padding: 0em 0em 0.25em 0em;
}
/*.footnotes:before{
content: "Footnotes";
font-size: 1.2em;
font-weight: bold;
line-height: 2.5em;
padding-left: 0.5em;
}*/
/*TOC (for DEVONthink Markdown documents; for other editors, try e.g. ".toc")*/
.TOC {
background: #f4f5f8 none repeat scroll 0 0; //f3f6f6
border: 0px solid #aaa;
border-radius: 10px;
display: table;
font-size: 95%;
margin-bottom: 1em;
padding-left: 2px;
padding-top: 2px;
padding-bottom: 2px;
padding-right: 2px;
width: 100%;
}
/*uncomment if you'd like to automatically add a title to your TOC:*/
/*.TOC:before {
content: "Table of Contents";
font-weight: bold;
font-size: 1.1em;
color: #3973ad;
padding-left: 1em;
margin-bottom: -1em;
line-height: 3em;
}*/
.TOC li, .TOC ul, .TOC ul li{
list-style: decimal;
}
.top-link {
transition: all .25s ease-in-out;
position: fixed;
bottom: 0;
right: 0;
display: inline-flex;
color: #000000;
cursor: pointer;
align-items: center;
justify-content: center;
margin: 0 2em 2em 0;
border-radius: 50%;
padding: .25em;
width: 1em;
height: 1em;
background-color: #F8F8F8;
}
/*Check-Boxes/To-Do-Boxes (doesn't work in DEVONthink Markdown documents)*/
/* ul li.checkbox {
appearance: none;
background-color: #fff;
margin: 0;
font: inherit;
color: #b2b2b2;
width: 1.15em;
height: 1.15em;
border: 0.15em solid #b2b2b2;
border-radius: 0.15em;
} */
/* input[type="checkbox"] {
appearance: none;
background-color: #fff;
margin: 0;
font: inherit;
color: #b2b2b2;
width: 1.15em;
height: 1.15em;
border: 0.15em solid #b2b2b2;
border-radius: 0.15em;
}
input[type="checkbox"]::before {
content: " ";
width: 0.65em;
height: 0.65em;
clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
}
input[type="checkbox"]:checked::after {
content: "_";
color: #cdef9a;
box-shadow: inset 4em 2em #cdef9a;
}
.task-list-item {
list-style-type: none;
margin-top: 0px;
margin-bottom: 0px;
}
.task-list-item input {
margin: 0 0.2em .25em -1.6em;
vertical-align: middle;
padding-bottom: 0px;
opacity: 1;
} */
/*Definition lists*/
dl {
padding: 0; }
dl dt {
font-size: 14px;
font-weight: bold;
font-style: italic;
padding: 0;
margin: 15px 0 5px; }
dl dt:first-child {
padding: 0; }
dl dt > :first-child {
margin-top: 0; }
dl dt > :last-child {
margin-bottom: 0; }
dl dd {
margin: 0 0 15px;
padding: 0 15px; }
dl dd > :first-child {
margin-top: 0; }
dl dd > :last-child {
margin-bottom: 0; }
/*Quotes*/
blockquote {
border-left: 4px solid #dddddd;
padding: 0 15px;
font-style: normal;
color: #5598c1; } /* 777777 */
blockquote > :first-child {
margin-top: 0; }
blockquote > :last-child {
margin-bottom: 0; }
/*Tables*/
table {
padding: 0;border-collapse: collapse;
margin-left: auto;
margin-right: auto;
text-align: center;}
table tr {
/* border-top: 1px solid #cccccc; */
background-color: white;
margin: 0;
padding: 0; }
table tr:nth-child(2n) {
background-color: #f8f8f8; }
table tr th {
font-weight: bold;
/* border: 0.5px solid #cccccc; */
/* border-left: 0.5px solid #cccccc;
border-right: 0.5px solid #cccccc; */
background-color: #eefbff;
font-size: 14px;
margin: 0;
padding: 0.4em 0.35em 0.4em 0.35em; }
table tr td {
/* border: 1px solid #cccccc; */
margin: 0;
font-size: 14px;
padding: 5px 5px; }
table tr th :first-child, table tr td :first-child {
margin-top: 0; }
table tr th :last-child, table tr td :last-child {
margin-bottom: 0; }
/*Images*/
img {
max-width: 100%;}
/*Alternative: center Images*/
/* img {
display: block;
max-width: 100%;
margin-left: auto;
margin-right: auto; }
*/
/*Span*/
span.frame {
display: block;
overflow: hidden;
}
span.frame > span {
border: 1px solid #dddddd;
display: block;
float: left;
overflow: hidden;
margin: 13px 0 0;
padding: 7px;
width: auto;
}
span.frame span img {
display: block;
float: left;
}
span.frame span span {
clear: both;
color: #333333;
display: block;
padding: 5px 0 0;
}
span.align-center {
display: block;
overflow: hidden;
clear: both;
}
span.align-center > span {
display: block;
overflow: hidden;
margin: 13px auto 0;
text-align: center;
}
span.align-center span img {
margin: 0 auto;
text-align: center;
}
span.align-right {
display: block;
overflow: hidden;
clear: both;
}
span.align-right > span {
display: block;
overflow: hidden;
margin: 13px 0 0;
text-align: right;
}
span.align-right span img {
margin: 0;
text-align: right;
}
span.float-left {
display: block;
margin-right: 13px;
overflow: hidden;
float: left;
}
span.float-left span {
margin: 13px 0 0;
}
span.float-right {
display: block;
margin-left: 13px;
overflow: hidden;
float: right;
}
span.float-right > span {
display: block;
overflow: hidden;
margin: 13px auto 0;
text-align: right;
}
/*Code blocks*/
code, tt {
margin: 0 2px;
padding: 0 5px;
white-space: nowrap;
border: 1px solid #eaeaea;
background-color: #f8f8f8;
border-radius: 3px;
}
pre code {
margin: 0;
padding: 0;
white-space: pre;
border: none;
background: transparent;
}
.highlight pre {
background-color: #f8f8f8;
border: 1px solid #cccccc;
font-size: 13px;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
border-radius: 3px;
}
/*Preformatted text*/
pre {
background-color: #f8f8f8;
border: 1px solid #cccccc;
/*font-size: 13px;*/
font-size: 0.90em !important;
line-height: 1.6em !important; //19px
overflow: auto;
padding: 6px 10px;
border-radius: 3px;
}
pre code, pre tt {
background-color: transparent;
border: none;
}
/*Superscript text*/
sup {
font-size: 0.83em;
vertical-align: super;
line-height: 0;
}
/*Subscript text*/
sub {
font-size: 0.83em;
vertical-align: sub;
line-height: 0;
}
/*Define keyboard input*/
kbd {
display: inline-block;
padding: 3px 5px;
font-size: 11px;
line-height: 10px;
color: #555;
vertical-align: middle;
background-color: #fcfcfc;
border: solid 1px #ccc;
border-bottom-color:#bbb;
border-radius: 3px;
box-shadow: inset 0 -1px 0 #bbb
}
/*Color of highlighted text*/
mark {
background-color: #fdfdcc;
color: black;
}
/*Adjustments for printing*/
* {
-webkit-print-color-adjust: exact;
}
@media screen and (min-width: 914px) {
body {
width: 854px;
margin: 0 auto;
}
}
@media print {
table, pre {
page-break-inside: avoid;
}
pre {
word-wrap: break-word;
}
body {
padding: 2cm;
}
}

View File

@@ -0,0 +1,5 @@
npm i markdown-to-html staticrypt
npx github-markdown public/defects.md --stylesheet md_style.css > public/index.html
npx staticrypt public/index.html -p nssheung_nssheung_nssheung -d public

View File

@@ -0,0 +1,36 @@
# CREDIT: https://github.com/shren207/nextjs-docker-compose
# CREATED: 03-12-2023
services:
nssheung_share:
container_name: nssheung_share
build: .
restart: always
volumes:
- ./app:/app
- nssheung_node_modules:/app/node_modules
working_dir: /app
# command: sleep infinity
command: bash entry.sh
# ports:
# - 8080
labels:
- "traefik.enable=true"
- "traefik.http.routers.nssheung-http.rule=Host(`nssheung.louislabs.com`)"
- "traefik.http.routers.nssheung-http.entrypoints=web"
- "traefik.http.routers.nssheung-http.middlewares=nssheung-https"
- "traefik.http.middlewares.nssheung-https.redirectscheme.scheme=https"
- "traefik.http.routers.nssheung.rule=Host(`nssheung.louislabs.com`)"
- "traefik.http.routers.nssheung.entrypoints=websecure"
- "traefik.http.routers.nssheung.tls.certresolver=myresolver"
- "traefik.http.services.nssheung.loadbalancer.server.port=8080"
- "expire=2023-05-23"
networks:
default:
external:
name: traefik-proxy-network
volumes:
nssheung_node_modules:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,20 @@
{
"name": "app",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "http-server --cors ./public",
"gitUpdate": "git add . && git commit -m \"update defects page,\" && git push"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"http-server": "^14.1.1",
"markdown-to-html": "^0.0.13",
"serve": "^14.2.0",
"staticrypt": "^3.3.0"
}
}

View File

@@ -0,0 +1,9 @@
#!/usr/bin/env bash
set -ex
docker compose kill
docker compose down
docker compose up -d --build
docker compose logs -f

View File

@@ -0,0 +1,7 @@
#!/usr/bin/env bash
rm -rf ./dist/delivery.zip
set -ex
7za a -mx9 -tzip ./dist/delivery.zip src _hidden -r

View File

@@ -0,0 +1,14 @@
@cmd /c del dist\delivery.zip
@REM @echo off
@REM 2>nul (
@REM command1
@REM command2
@REM command3
@REM )
@REM # @REM zip -r %DIST%/*.zip .
@REM @REM powershell Compress-Archive .\src .\dist\src.zip
@REM @REM powershell Compress-Archive .\_hidden .\dist\_hidden.zip
"C:\Program Files\7-Zip\7z" a -mx9 .\dist\delivery.zip src _hidden

View File

@@ -0,0 +1,15 @@
{
"name": "school-management-system",
"version": "1.0.0",
"description": "## to start develop environment",
"main": "index.js",
"directories": {
"test": "test"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}

View File

@@ -0,0 +1,32 @@
### administrator
- Student
- Teacher
- Subject
- Schedule
- Class room
- User
- Attendance
- Exam
- Exam result
- Payment info
- payment receipt
### teacher
- Student
- Teacher / Info
- Schedule
- View class room
- Attendance
- Exam
- Exam result
- Notice to student and Administrator
### student
- View Schedule (4月21)
- View Notice
- View Exam Results
### common
- login / logout

View File

@@ -0,0 +1,12 @@
# EditorConfig is awesome: https://EditorConfig.org
# top-most EditorConfig file
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

144
School-Management-System/src/.gitignore vendored Normal file
View File

@@ -0,0 +1,144 @@
# Created by https://www.toptal.com/developers/gitignore/api/node
# Edit at https://www.toptal.com/developers/gitignore?templates=node
### Node ###
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional stylelint cache
.stylelintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# vuepress v2.x temp and cache directory
.temp
# Docusaurus cache and generated files
.docusaurus
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
### Node Patch ###
# Serverless Webpack directories
.webpack/
# Optional stylelint cache
# SvelteKit build / generate output
.svelte-kit
# End of https://www.toptal.com/developers/gitignore/api/node

View File

@@ -0,0 +1,2 @@
vendor
storage

View File

@@ -0,0 +1,97 @@
/*
|--------------------------------------------------------------------------
| Browser-sync config file
|--------------------------------------------------------------------------
|
| For up-to-date information about the options:
| http://www.browsersync.io/docs/options/
|
| There are more options than you see here, these are just the ones that are
| set internally. See the website for more info.
|
|
*/
module.exports = {
ui: {
port: 3001,
},
files: false,
watchEvents: ['change'],
watch: false,
ignore: [],
single: false,
watchOptions: {
ignoreInitial: true,
},
server: false,
proxy: false,
port: 3000,
middleware: false,
serveStatic: [],
ghostMode: {
clicks: true,
scroll: true,
location: true,
forms: {
submit: true,
inputs: true,
toggles: true,
},
},
logLevel: 'info',
logPrefix: 'Browsersync',
logConnections: false,
logFileChanges: true,
logSnippet: true,
rewriteRules: [],
open: false,
browser: 'default',
cors: false,
xip: false,
hostnameSuffix: false,
reloadOnRestart: false,
notify: true,
scrollProportionally: true,
scrollThrottle: 0,
scrollRestoreTechnique: 'window.name',
scrollElements: [],
scrollElementMapping: [],
reloadDelay: 0,
reloadDebounce: 500,
reloadThrottle: 0,
plugins: [],
injectChanges: true,
startPath: null,
minify: true,
host: null,
localOnly: false,
codeSync: true,
timestamps: true,
clientEvents: ['scroll', 'scroll:element', 'input:text', 'input:toggles', 'form:submit', 'form:reset', 'click'],
socket: {
socketIoOptions: {
log: false,
},
socketIoClientConfig: {
reconnectionAttempts: 50,
},
path: '/browser-sync/socket.io',
clientPath: '/browser-sync',
namespace: '/browser-sync',
clients: {
heartbeatTimeout: 5000,
},
},
tagNames: {
less: 'link',
scss: 'link',
css: 'link',
jpg: 'img',
jpeg: 'img',
png: 'img',
svg: 'img',
gif: 'img',
js: 'script',
},
injectNotification: false,
};

View File

@@ -0,0 +1,6 @@
# Stop and remove all running containers
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
# Remove all container images
docker rmi $(docker images -q)

View File

@@ -0,0 +1,48 @@
services:
mysql:
image: mysql:latest
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: laravel
MYSQL_USER: project
MYSQL_PASSWORD: project
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- 8089:80
environment:
PMA_HOST: mysql
PMA_USER: project
PMA_PASSWORD: project
UPLOAD_LIMIT: 10G
MAX_EXECUTION_TIME: 1800
depends_on:
- mysql
php74-httpd:
# image: composer
build: php74-httpd
ports:
- 8000:8000
volumes:
- php74_vendor:/app/vendor
- ./php74-httpd:/app
- ./php74-httpd/php-cli.ini:/usr/local/etc/php/conf.d/php-cli.ini
working_dir: /app
user: 1000:1000
command: sleep infinity
depends_on:
- mysql
mailhog:
image: mailhog/mailhog:latest
ports:
- 1025:1025
- 8025:8025
volumes:
php74_vendor:

View File

@@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -ex
rm -rf example-app
composer create-project laravel/laravel example-app
pushd example-app
php artisan serve --host 0.0.0.0

View File

@@ -0,0 +1,7 @@
{
"watch": [
"**/*.blade.php"
],
"ext": "blade.php",
"delay": "200"
}

Some files were not shown because too many files have changed in this diff Show More