Merge remote-tracking branch 'origin/main' into dev
This commit is contained in:
commit
c84b4b3caa
38
.github/ISSUE_TEMPLATE/---bug-report.md
vendored
Normal file
38
.github/ISSUE_TEMPLATE/---bug-report.md
vendored
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
---
|
||||||
|
name: "\U0001F41E Bug report"
|
||||||
|
about: Report an issue
|
||||||
|
title: ''
|
||||||
|
labels: bug
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Describe the bug**
|
||||||
|
A clear and concise description of what the bug is.
|
||||||
|
|
||||||
|
**To Reproduce**
|
||||||
|
Steps to reproduce the behavior:
|
||||||
|
1. Go to '...'
|
||||||
|
2. Click on '....'
|
||||||
|
3. Scroll down to '....'
|
||||||
|
4. See error
|
||||||
|
|
||||||
|
**Expected behavior**
|
||||||
|
A clear and concise description of what you expected to happen.
|
||||||
|
|
||||||
|
**Screenshots**
|
||||||
|
If applicable, add screenshots to help explain your problem.
|
||||||
|
|
||||||
|
**Desktop (please complete the following information):**
|
||||||
|
- OS: [e.g. iOS]
|
||||||
|
- Browser [e.g. chrome, safari]
|
||||||
|
- Version [e.g. 22]
|
||||||
|
|
||||||
|
**Smartphone (please complete the following information):**
|
||||||
|
- Device: [e.g. iPhone6]
|
||||||
|
- OS: [e.g. iOS8.1]
|
||||||
|
- Browser [e.g. stock browser, safari]
|
||||||
|
- Version [e.g. 22]
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context about the problem here.
|
||||||
20
.github/ISSUE_TEMPLATE/---feature-request.md
vendored
Normal file
20
.github/ISSUE_TEMPLATE/---feature-request.md
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
---
|
||||||
|
name: "\U0001F31F Feature request"
|
||||||
|
about: Suggest an idea
|
||||||
|
title: ''
|
||||||
|
labels: enhancement
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Is your feature request related to a problem? Please describe.**
|
||||||
|
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||||
|
|
||||||
|
**Describe the solution you'd like**
|
||||||
|
A clear and concise description of what you want to happen.
|
||||||
|
|
||||||
|
**Describe alternatives you've considered**
|
||||||
|
A clear and concise description of any alternative solutions or features you've considered.
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context or screenshots about the feature request here.
|
||||||
20
README.md
20
README.md
|
|
@ -1,10 +1,20 @@
|
||||||
# Crabfit <img width="100" align="right" src="crabfit-frontend/src/res/logo.svg" alt="avatar">
|
# Crab Fit <img width="100" align="right" src="crabfit-frontend/src/res/logo.svg" alt="avatar">
|
||||||
|
|
||||||
Align your schedules to find the perfect time that works for everyone.
|
Align your schedules to find the perfect time that works for everyone.
|
||||||
Licensed under the GNU GPLv3.
|
Licensed under the GNU GPLv3.
|
||||||
|
|
||||||
<a href="https://www.producthunt.com/posts/crab-fit?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-crab-fit" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=291656&theme=light" alt="Crab Fit - Use your availability to find a time that works for everyone | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54" /></a>
|
<a href="https://www.producthunt.com/posts/crab-fit?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-crab-fit" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=291656&theme=light" alt="Crab Fit - Use your availability to find a time that works for everyone | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54" /></a>
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
### ⭐️ Bugs or feature requests
|
||||||
|
|
||||||
|
If you find any bugs or have a feature request, please create an issue by <a href="https://github.com/GRA0007/crab.fit/issues/new/choose">clicking here</a>.
|
||||||
|
|
||||||
|
### 🌐 Translations
|
||||||
|
|
||||||
|
If you speak a language other than English and you want to help translate Crab Fit, fill out this form: https://forms.gle/azz1yGqhpLUka45S9
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
1. Clone the repo.
|
1. Clone the repo.
|
||||||
|
|
@ -12,18 +22,18 @@ Licensed under the GNU GPLv3.
|
||||||
3. Run `node index.js` in the backend folder to start the API.
|
3. Run `node index.js` in the backend folder to start the API.
|
||||||
4. Run `yarn start` in the frontend folder to start the front end.
|
4. Run `yarn start` in the frontend folder to start the front end.
|
||||||
|
|
||||||
### Browser extension
|
### 🔌 Browser extension
|
||||||
The browser extension in `crabfit-browser-extension` can be tested by first running the frontend, and changing the iframe url in the extension's `popup.html` to match the local Crab Fit. Then it can be loaded as an unpacked extension in Chrome to test.
|
The browser extension in `crabfit-browser-extension` can be tested by first running the frontend, and changing the iframe url in the extension's `popup.html` to match the local Crab Fit. Then it can be loaded as an unpacked extension in Chrome to test.
|
||||||
|
|
||||||
## Deploy
|
## Deploy
|
||||||
|
|
||||||
### Frontend
|
### 🦀 Frontend
|
||||||
1. In the frontend folder `cd crabfit-frontend`
|
1. In the frontend folder `cd crabfit-frontend`
|
||||||
2. Run `./deploy.sh` to compile and deploy.
|
2. Run `./deploy.sh` to compile and deploy.
|
||||||
|
|
||||||
### Backend
|
### ⚙️ Backend
|
||||||
1. In the backend folder `cd crabfit-backend`
|
1. In the backend folder `cd crabfit-backend`
|
||||||
2. Deploy the backend `gcloud app deploy --project=crabfit --version=v1`
|
2. Deploy the backend `gcloud app deploy --project=crabfit --version=v1`
|
||||||
|
|
||||||
### Browser extension
|
### 🔌 Browser extension
|
||||||
Compress everything inside the `crabfit-browser-extension` folder and use that zip to deploy using Chrome web store and Mozilla Add-on store.
|
Compress everything inside the `crabfit-browser-extension` folder and use that zip to deploy using Chrome web store and Mozilla Add-on store.
|
||||||
|
|
|
||||||
|
|
@ -1,42 +1,42 @@
|
||||||
{
|
{
|
||||||
"name": "Crab Fit",
|
"name": "クラーブフィット",
|
||||||
"tagline": "Create your own",
|
"tagline": "自分のを作成しましょう",
|
||||||
"cta": "Create your own Crab Fit!",
|
"cta": "自分のクラーブフィットを作成しましょう!",
|
||||||
"created": "{{date}}で作成",
|
"created": "{{date}}で作成した",
|
||||||
"donate": {
|
"donate": {
|
||||||
"info": "Thank you for using Crab Fit. If you like it, consider donating.",
|
"info": "クラーブフィットを使ってありがとうございました。好きだったら、寄付してくれますか?",
|
||||||
"button": "Donate",
|
"button": "寄付する",
|
||||||
"title": "Every amount counts :)",
|
"title": "いくらでもいいですよ :)",
|
||||||
"options": {
|
"options": {
|
||||||
"$2": "Donate $2",
|
"$2": "$2を寄付する",
|
||||||
"$5": "Donate $5",
|
"$5": "$5を寄付する",
|
||||||
"$10": "Donate $10",
|
"$10": "$10を寄付する",
|
||||||
"choose": "Choose an amount"
|
"choose": "自分で選んだ金額"
|
||||||
},
|
},
|
||||||
"messages": {
|
"messages": {
|
||||||
"about": "If it's helped you out at all, consider donating to help keep it running. 🦀",
|
"about": "クラブフィットは便利だなと思うなら、寄付してくれませんか?🦀",
|
||||||
"success": "Thank you for your donation! Without you, Crab Fit wouldn't be free, so thank you and keep being super awesome!",
|
"success": "寄付ありがとうございます!あなたの補佐がなければ、無料でいられることができませんので、本当に助けてくれました。",
|
||||||
"error": "Cannot make donation through Google. Please try donating through the website crab.fit 🦀"
|
"error": "Googleで寄付ができません。crab.fitのサイトで直接寄付してください。🦀"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"options": {
|
"options": {
|
||||||
"name": "Options",
|
"name": "設定",
|
||||||
"weekStart": {
|
"weekStart": {
|
||||||
"label": "Week starts on",
|
"label": "週間の始まり",
|
||||||
"options": {
|
"options": {
|
||||||
"Sunday": "日曜",
|
"Sunday": "日曜日",
|
||||||
"Monday": "月曜"
|
"Monday": "月曜日"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"timeFormat": {
|
"timeFormat": {
|
||||||
"label": "Time format",
|
"label": "時間表記",
|
||||||
"options": {
|
"options": {
|
||||||
"12h": "12時間",
|
"12h": "12時制",
|
||||||
"24h": "24時間"
|
"24h": "24時制"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"theme": {
|
"theme": {
|
||||||
"label": "色のテーマ",
|
"label": "テーマ",
|
||||||
"options": {
|
"options": {
|
||||||
"System": "システム",
|
"System": "システム",
|
||||||
"Light": "明色",
|
"Light": "明色",
|
||||||
|
|
@ -44,11 +44,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"highlight": {
|
"highlight": {
|
||||||
"label": "Highlight highest availability",
|
"label": "最高t都合がいい時をハイライトする",
|
||||||
"title": "Make the highest availability on the heatmap stand out",
|
"title": "最高都合がいい時をもっと見やすくなる",
|
||||||
"options": {
|
"options": {
|
||||||
"Off": "オフ",
|
"Off": "しない",
|
||||||
"On": "オン"
|
"On": "する"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"language": {
|
"language": {
|
||||||
|
|
|
||||||
|
|
@ -1,63 +1,65 @@
|
||||||
{
|
{
|
||||||
"available": "available",
|
"available": "都合がいい",
|
||||||
|
"greyed_times": "この領域はイベントの範囲ではないので、グレーアウトしました。このイベントは作った時間帯と違う時間帯で見るかもしれません。",
|
||||||
|
|
||||||
"nav": {
|
"nav": {
|
||||||
"title": "Click to copy",
|
"title": "クリックして、コピーする",
|
||||||
"copied": "Copied!",
|
"copied": "コピーしました!",
|
||||||
"shareinfo": "Copy the link to this page, or share via <1>email</1>.",
|
"shareinfo": "このページのリンクをコーピして、または<1>メール</1>でシェアします。",
|
||||||
"shareinfo_alt": "Click the link above to copy it to your clipboard, or share via <1>email</1>.",
|
"shareinfo_alt": "この上にあるリンクをクリックして、クリップボードにコーピして、または<1>メール</1>でシェアーします。",
|
||||||
"email_subject": "Scheduling {{event_name}}",
|
"email_subject": "{{event_name}}を予定",
|
||||||
"email_body": "Visit this link to enter your availabilities:"
|
"email_body": "このリンクで都合を登録できます:"
|
||||||
},
|
},
|
||||||
"form": {
|
"form": {
|
||||||
"signed_out": "Sign in to add your availability",
|
"signed_out": "都合を登録したいなら、最初はログインしてください",
|
||||||
"signed_in": "Signed in as {{name}}",
|
"signed_in": "{{name}}でログインしています",
|
||||||
|
|
||||||
"name": "Your name",
|
"name": "あなたの名前",
|
||||||
"password": "Password (optional)",
|
"password": "パスワード(任意)",
|
||||||
"button": "Login",
|
"button": "ログイン",
|
||||||
"info": "These details are only for this event. Use a password to prevent others from changing your availability.",
|
"info": "この詳細はこのイベントだけについてです。他人はあなたの都合を変化することを予防したいなら、パスワードを使ってください。",
|
||||||
|
|
||||||
"timezone": "Your time zone",
|
"timezone": "あなたの時間帯",
|
||||||
|
|
||||||
"errors": {
|
"errors": {
|
||||||
"password_incorrect": "Password is incorrect. Check your name is spelled right.",
|
"password_incorrect": "パスワードは正しくありません。名前の綴りかたを確認してください。",
|
||||||
"unknown": "Failed to login. Please try again."
|
"unknown": "ログインはできなかったです。もう一度やり直してください。"
|
||||||
},
|
},
|
||||||
|
|
||||||
"created_in_timezone": "This event was created in the timezone <strong>{{timezone}}</strong>. <3>Click here</3> to use it.",
|
"created_in_timezone": "このイベントは<strong>{{timezone}}</strong>の時間帯で作成しました。<3>ここをクリックする</3>とその時間帯を使うことができます。",
|
||||||
"local_timezone": "Your local timezone is detected to be <strong>{{timezone}}</strong>. <3>Click here</3> to use it."
|
"local_timezone": "システムによると、あなたのローカル時間帯は<strong>{{timezone}}</strong>です。<3>ここをクリックする</3>とその時間帯を使うことでできます。"
|
||||||
},
|
},
|
||||||
"offline": {
|
"offline": {
|
||||||
"title": "You are offline",
|
"title": "インターネットは接続していません",
|
||||||
"body": "A Crab Fit doesn't work offline.<br />Make sure you're connected to the internet and try again."
|
"body": "クラブフィットはオフラインで使われません。<br />インターネット接続を確認してもう一度やり直してください。"
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
"title": "Event not found",
|
"title": "イベントは見つけられませんでした",
|
||||||
"body": "Check that the url you entered is correct."
|
"body": "登録したURLを確認してください"
|
||||||
},
|
},
|
||||||
|
|
||||||
"tabs": {
|
"tabs": {
|
||||||
"you": "Your availability",
|
"you": "あなたの都合",
|
||||||
"you_tooltip": "Login to set your availability",
|
"you_tooltip": "ログインすると都合を設定することができます",
|
||||||
"group": "Group availability"
|
"group": "グループの都合"
|
||||||
},
|
},
|
||||||
|
|
||||||
"group": {
|
"group": {
|
||||||
"legend_tooltip": "Click to highlight highest availability",
|
"legend_tooltip": "クリックすると最高の都合をハイライトすることができます",
|
||||||
"info1": "Hover or tap the calendar below to see who is available",
|
"info1": "下のカレンダーの上にマウスカーソルをホバリングしてまたはタップすると都合がいい人を見ることができます",
|
||||||
"info2": "Click the names below to view people individually"
|
"info2": "下の名前をクリックすると人の都合を見ることができます"
|
||||||
},
|
},
|
||||||
|
|
||||||
"you": {
|
"you": {
|
||||||
"info": "Click and drag the calendar below to set your availabilities",
|
"info": "都合を設定したいなら、下のカレンダーをクリックしてドラッグする",
|
||||||
"google_cal": {
|
"google_cal": {
|
||||||
"login": "Sync with Google Calendar",
|
"login": "Googleカレンダーを同期する",
|
||||||
"logout": "log out",
|
"logout": "ログアウト",
|
||||||
"select_all": "Select all",
|
"select_all": "全部を選択する",
|
||||||
"select_none": "Select none",
|
"select_none": "どれもないを選択する",
|
||||||
"info": "Importing will overwrite your current availability",
|
"info": "インポートしたら、今の都合が上書きされる",
|
||||||
"button": "Import availability"
|
"button": "都合をインポートする"
|
||||||
}
|
},
|
||||||
|
"outlook_cal": "Outlookカレンダーを同期する"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue