---
@@ -0,0 +1 @@
|
||||
/* /index.html 200
|
||||
@@ -0,0 +1,40 @@
|
||||
const { app, BrowserWindow } = require('electron')
|
||||
const path = require('path')
|
||||
const isDev = require('electron-is-dev')
|
||||
|
||||
let mainWindow
|
||||
|
||||
const createWindow = () => {
|
||||
mainWindow = new BrowserWindow({
|
||||
width: 800,
|
||||
height: 600,
|
||||
icon: path.join(__dirname, 'media/icons/electron.png'),
|
||||
webPreferences: {
|
||||
nodeIntegration: true,
|
||||
contextIsolation: false,
|
||||
},
|
||||
})
|
||||
|
||||
mainWindow.loadURL(
|
||||
isDev
|
||||
? 'http://localhost:3000'
|
||||
: `file://${path.join(__dirname, '..', 'build', 'index.html')}`
|
||||
)
|
||||
|
||||
mainWindow.on('closed', () => (mainWindow = null))
|
||||
}
|
||||
|
||||
app.disableHardwareAcceleration()
|
||||
app.on('ready', createWindow)
|
||||
|
||||
app.on('window-all-closed', () => {
|
||||
if (process.platform !== 'darwin') {
|
||||
app.quit()
|
||||
}
|
||||
})
|
||||
|
||||
app.on('activate', () => {
|
||||
if (mainWindow === null) {
|
||||
createWindow()
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1,50 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="icon" href="%PUBLIC_URL%/media/icons/favicon.ico" />
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/png"
|
||||
sizes="32x32"
|
||||
href="%PUBLIC_URL%/media/icons/favicon-32x32.png"
|
||||
/>
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/png"
|
||||
sizes="16x16"
|
||||
href="%PUBLIC_URL%/media/icons/favicon-16x16.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
href="%PUBLIC_URL%/media/icons/apple-touch-icon.png"
|
||||
/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
|
||||
<!--
|
||||
manifest.json provides metadata used when your web app is installed on a
|
||||
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
|
||||
-->
|
||||
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
|
||||
<!--
|
||||
Notice the use of %PUBLIC_URL% in the tags above.
|
||||
It will be replaced with the URL of the `public` folder during the build.
|
||||
Only files inside the `public` folder can be referenced from the HTML.
|
||||
|
||||
Unlike '/favicon.ico' or 'favicon.ico', '%PUBLIC_URL%/favicon.ico' will
|
||||
work correctly both with client-side routing and a non-root public URL.
|
||||
Learn how to configure a non-root public URL by running `npm run build`.
|
||||
-->
|
||||
<link
|
||||
href="https://cdn.jsdelivr.net/gh/hung1001/font-awesome-pro@4cac1a6/css/all.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||
<div id="app"></div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,113 @@
|
||||
{
|
||||
"name": "Debaters' toolkit",
|
||||
"short_name": "Debaters' toolkit",
|
||||
"categories": [
|
||||
"education",
|
||||
"sports",
|
||||
"utilities"
|
||||
],
|
||||
"description": "Generate a random debate motion, search our database of over 7000 motions, calculate break chances or do debate timekeeping.",
|
||||
"screenshots": [
|
||||
{
|
||||
"src": "media/screenshots/1.png",
|
||||
"sizes": "1800x2040",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "media/screenshots/2.png",
|
||||
"sizes": "1800x2040",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "media/screenshots/3.png",
|
||||
"sizes": "1800x2040",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "media/screenshots/4.png",
|
||||
"sizes": "1800x2040",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "media/screenshots/5.png",
|
||||
"sizes": "1800x2040",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"icons": [
|
||||
{
|
||||
"src": "media/icons/android-chrome-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "media/icons/android-chrome-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"shortcuts": [
|
||||
{
|
||||
"name": "Motion Generator",
|
||||
"short_name": "Generator",
|
||||
"description": "Generate a random debate motion",
|
||||
"url": "/generator",
|
||||
"icons": [
|
||||
{ "src": "/media/icons/generator/36x36.png", "sizes": "36x36" },
|
||||
{ "src": "/media/icons/generator/48x48.png", "sizes": "48x48" },
|
||||
{ "src": "/media/icons/generator/72x72.png", "sizes": "72x72" },
|
||||
{ "src": "/media/icons/generator/96x96.png", "sizes": "96x96" },
|
||||
{ "src": "/media/icons/generator/144x144.png", "sizes": "144x144" },
|
||||
{ "src": "/media/icons/generator/192x192.png", "sizes": "192x192" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Motion Database",
|
||||
"short_name": "Database",
|
||||
"description": "Search for motions from the database",
|
||||
"url": "/database",
|
||||
"icons": [
|
||||
{ "src": "/media/icons/database/36x36.png", "sizes": "36x36" },
|
||||
{ "src": "/media/icons/database/48x48.png", "sizes": "48x48" },
|
||||
{ "src": "/media/icons/database/72x72.png", "sizes": "72x72" },
|
||||
{ "src": "/media/icons/database/96x96.png", "sizes": "96x96" },
|
||||
{ "src": "/media/icons/database/144x144.png", "sizes": "144x144" },
|
||||
{ "src": "/media/icons/database/192x192.png", "sizes": "192x192" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Break Calculator",
|
||||
"short_name": "Calculator",
|
||||
"description": "Calculate break chances in AP, WSDC, or BP tournaments",
|
||||
"url": "/break_calculator",
|
||||
"icons": [
|
||||
{ "src": "/media/icons/break-calculator/36x36.png", "sizes": "36x36" },
|
||||
{ "src": "/media/icons/break-calculator/48x48.png", "sizes": "48x48" },
|
||||
{ "src": "/media/icons/break-calculator/72x72.png", "sizes": "72x72" },
|
||||
{ "src": "/media/icons/break-calculator/96x96.png", "sizes": "96x96" },
|
||||
{ "src": "/media/icons/break-calculator/144x144.png", "sizes": "144x144" },
|
||||
{ "src": "/media/icons/break-calculator/192x192.png", "sizes": "192x192" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Debate Timekeeper",
|
||||
"short_name": "Timekeeper",
|
||||
"description": "Do debate timekeeping",
|
||||
"url": "/keeper",
|
||||
"icons": [
|
||||
{ "src": "/media/icons/timekeeper/36x36.png", "sizes": "36x36" },
|
||||
{ "src": "/media/icons/timekeeper/48x48.png", "sizes": "48x48" },
|
||||
{ "src": "/media/icons/timekeeper/72x72.png", "sizes": "72x72" },
|
||||
{ "src": "/media/icons/timekeeper/96x96.png", "sizes": "96x96" },
|
||||
{ "src": "/media/icons/timekeeper/144x144.png", "sizes": "144x144" },
|
||||
{ "src": "/media/icons/timekeeper/192x192.png", "sizes": "192x192" }
|
||||
]
|
||||
}
|
||||
],
|
||||
"id": "/",
|
||||
"start_url": "/",
|
||||
"display": "standalone",
|
||||
"theme_color": "#FFFFFF",
|
||||
"background_color": "#FFFFFF",
|
||||
"android_package_name": "com.debaterstoolkit.android"
|
||||
}
|
||||
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 7.3 KiB |
|
After Width: | Height: | Size: 7.7 KiB |
|
After Width: | Height: | Size: 8.0 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 454 B |
|
After Width: | Height: | Size: 745 B |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 8.7 KiB |
|
After Width: | Height: | Size: 9.2 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 7.1 KiB |
|
After Width: | Height: | Size: 139 KiB |
|
After Width: | Height: | Size: 144 KiB |
|
After Width: | Height: | Size: 87 KiB |
|
After Width: | Height: | Size: 157 KiB |
|
After Width: | Height: | Size: 76 KiB |
@@ -0,0 +1,3 @@
|
||||
# https://www.robotstxt.org/robotstxt.html
|
||||
User-agent: *
|
||||
Disallow:
|
||||