https://github.com/systemengineeringteam/tenno-hai-front
天皇杯をサポートするためのユーザー登録や、問題表示、ランキング表示、インストール方法などのWebサービスを提供します。
https://github.com/systemengineeringteam/tenno-hai-front
laravel tailwindcss
Last synced: about 1 year ago
JSON representation
天皇杯をサポートするためのユーザー登録や、問題表示、ランキング表示、インストール方法などのWebサービスを提供します。
- Host: GitHub
- URL: https://github.com/systemengineeringteam/tenno-hai-front
- Owner: SystemEngineeringTeam
- License: mit
- Created: 2023-01-12T00:42:13.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-08-27T22:32:10.000Z (over 2 years ago)
- Last Synced: 2024-05-28T23:48:33.919Z (almost 2 years ago)
- Topics: laravel, tailwindcss
- Language: PHP
- Homepage:
- Size: 1.17 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# tenno-hai-front
## Introduction
天皇杯をサポートするためのユーザー登録や、問題表示、ランキング表示、インストール方法などのWebサービスを提供します。アプリケーションはLaravel All in Oneで作成されていますが、WebAPIも利用できるようになります。
## Usage
から利用出来ます。
仕様書: https://github.com/SystemEngineeringTeam/tenno-hai-front/blob/main/usecase.md
## Purpose
大学のサークルであるシス研は、オンプレミス環境にサーバーを置き、現場と変わらない本格的なネットワーク環境を持っています。
しかし、サークル環境は会社と違って人の流動が多く、長期的にメンテナンスが出来ないため、手入れをするのが難しい状態になっています。
プロジェクト天皇杯は、属人化、人手不足という課題を解決するために立案されました。
シス研に限らず、インフラを学びたい方に向けたサービスを提供する予定です。
## Requirement definition
- 問題文表示機能
- MarkDown
- 環境構築機能
- チェックサービスの導入
- Webでユーザごとの採点(LaravelAPI)
- OTPを使って判定コードを持ってくる
- ランキング形式で表示
- 会員登録機能(GitHubAuth?)
- グループ機能
## Feature
### Laravel Web Routes
- 製品紹介ページ
- /
- GET
- ダッシュボード画面
- /dashboard
- GET
- Userのステータス
- プロセス提案
- 会員登録機能(middleware:auth)
- /login
- /register
- /profile
- 環境構築機能
- /tutorial
- GET
- チュートリアルの一覧
- /tutorial
- 問題表示機能
- /task/
- GET
- タスクの一覧
- /task/{:post_id}
- GET
- タスクの内容
- tasks/nginx
- /task/{:post_id}/edit
- /task/{:post_id}/destroy
- GET,PUT,DELETE
- タスクの修正、削除
- tasks/nginx
- /task/create
- GET,POST
- タスクの追加
- /task/result
- POST
- タスクの完了通知
- ランキング表示
- /ranking/
- GET
## Enbironment
```mermaid
graph LR
A[EC2] -- Runs --> B(Docker)
B -- Contains --> C(Laravel)
C -- Connects to --> D[Aurora]
```
| Tool | Version |
| -------------- | -------- |
| Composer | 2.2.6 |
| Node.js | 16.15.0 |
| PHP | 8.1.2 |
| Docker Compose | 2.4.1 |
| Docker | 20.10.14 |
## Development
### Laravel
事前にComposer,Docker,DockerComposeの導入が必要です。
Laravel Sailでの環境構築を想定してますが、状況に応じてご自身でDB環境など用意して貰っても構いません。
```shell
# Laravel install
cd ./laravel
composer install
cp .env.sample .env
./vendor/bin/sail up -d
./vendor/bin/sail php artisan key:generate
./vendor/bin/sail php artisan migrate
# View install
./vendor/bin/sail npm install
./vendor/bin/sail npm run dev
```
Access:
### Terraform
インフラ構成はTerraformを利用する(予定)
## Database
データベース構成は以下の通りです。
```mermaid
classDiagram
User "1" -- "0..1" Group : belongsTo
Issue "1" -- "1..n" Category : belongsTo
Issue "1" -- "0..n" Result : hasMany
Result "1" -- "1" User : belongsTo
class User{
+bigIncrements id
+VARCHAR name
+VARCHAR email [unique]
+TIMESTAMP email_verified_at [nullable]
+VARCHAR password
+VARCHAR remember_token [nullable]
+bigInteger group_id [nullable]
+TIMESTAMP created_at
+TIMESTAMP updated_at
}
class Issue{
+bigIncrements id
+VARCHAR title
+TEXT content
+bigInteger category_id
+TIMESTAMP created_at
+TIMESTAMP updated_at
}
class Category{
+bigIncrements id
+VARCHAR name
+TIMESTAMP created_at
+TIMESTAMP updated_at
}
class Result{
+bigIncrements id
+bigInteger issue_id
+bigInteger user_id
+BOOLEAN answer
+TIMESTAMP created_at
+TIMESTAMP updated_at
}
class Group{
+bigIncrements id
+VARCHAR name
+TIMESTAMP created_at
+TIMESTAMP updated_at
}
```