-
Notifications
You must be signed in to change notification settings - Fork 2
/
config.ts
450 lines (436 loc) · 15.7 KB
/
config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
/**
* This file contains configuration for most aspects of the website that might need frequent changing.
*
* It should **only** be imported by the main entrypoint to the website, `App.vue`. All other
* components should accept *only* what they need as `props`, which `App.vue` will provide.
*
* Refer to `src/App.vue` for more details and examples.
*
* @packageDocumentation
*/
import { Project, ClubPosition, ClubSponsor, ClubSocials } from './configTypes';
/* eslint-disable max-len */
/**
* Recruitment configuration.
*
* @category Configuration
*/
export const recruitmentConfig: {
season: string;
applicationsOpen: boolean;
positions: ClubPosition[];
} = {
/**
* Recruitment season name.
*/
season: 'Winter 2023',
/**
* Toggle whether applications are open or not - this activates CTAs on the website for signup,
* such as a 'Join Us' button and the 'Join Us' section.
*/
applicationsOpen: true,
/**
* Define positions we are recruiting for. Each position will get a redirect generated under
* `https://ubclaunchpad.com/join/$POSITION_NAME`
*
* Each element must satisfy [[`ClubPosition`]].
*/
positions: [
{
name: 'Developer',
rolePageURL: 'https://docs.ubclaunchpad.com/handbook/recruitment/developer',
},
{
name: 'Designer',
rolePageURL: 'https://docs.ubclaunchpad.com/handbook/recruitment/designer',
},
],
};
/**
* Club configuration (projects, members, etc.)
*
* @category Configuration
*/
export const clubConfig: {
memberCount: number;
currentProjects: Project[];
featuredProjects: Project[];
socials: ClubSocials;
} = {
/**
* The current club member membership count.
*/
memberCount: 50,
/**
* The current or most recent active Launch Pad projects.
*
* Each element must satisfy [[`Project`]].
*/
currentProjects: [
{
name: 'Sync',
description: '📺 Watch YouTube videos in sync with friends',
elevatorPitch: `Sync is a synchronous YouTube streaming app for you to watch, share, and talk
about videos with your friends. Create stream rooms with your friends. Chat and video call
your friends and create endless playlists to watch videos together.`,
banner: {
url: 'https://raw.githubusercontent.com/ubclaunchpad/sync/master/.static/banner.png',
hasName: true,
},
media: {
type: 'youtube',
id: 'Y143tZxDp2A',
},
links: {
repository: 'https://github.com/ubclaunchpad/sync',
website: 'https://sync.ubclaunchpad.com/',
},
},
{
name: 'Physio Space',
description: 'The physio that’s always at your side',
elevatorPitch: `Physio Space collects real-time 3D position data of the patient's body while
doing exercises for the therapist to adjust exercises using a machine learning model directly
implemented into the browser, which is first analyzed within the app, and then provided
to a physiotherapist who can further analyze the data.`,
banner: {
url: 'https://raw.githubusercontent.com/ubclaunchpad/physiospace-react/master/showcasethumbnail_PhysioSpace.png',
hasName: true,
},
media: {
type: 'youtube',
id: 'gNtLn0EDFeQ',
},
links: {
repository: 'https://github.com/ubclaunchpad/physiospace-react',
website:'https://thephysio.space/',
writeup:'https://github.com/ubclaunchpad/physiospace-react/blob/master/README.md',
},
},
{
name: 'Footprint',
description: '🍃 Learn how the food you eat impacts your carbon footprint ',
elevatorPitch: `Footprint is a React Native application that enables users to scan food items
using computer vision and obtain the corresponding ecological footprint of the product.
We hope that Footprint will empower individuals to make environmentally informed decisions
about the food they consume.`,
banner: {
url: 'https://raw.githubusercontent.com/ubclaunchpad/Footprint/master/project_images/final_design.png',
hasName: true,
},
media: {
type: 'youtube',
id: 'iA3D2AmhkZE',
},
links: {
repository: 'https://github.com/ubclaunchpad/Footprint',
writeup: 'https://github.com/ubclaunchpad/Footprint/blob/master/README.md',
},
},
{
name: 'UBC Simulator 2',
description: '💭 A \'choose your own adventure\' game set in UBC',
elevatorPitch: `UBC Simulator 2 is a 'choose your own adventure' style browser game where
the player attempts to survive a year as a student at UBC, featuring time sensitive events,
minigames, and campaign personalization!`,
banner: {
url: 'https://raw.githubusercontent.com/ubclaunchpad/ubcsim2/master/.static/thumbnail.png',
hasName: true,
},
media: {
type: 'youtube',
id: 'xWBKmqTYMYc',
},
links: {
repository: 'https://github.com/ubclaunchpad/ubcsim2',
website: 'https://ubcsim2.ubclaunchpad.com',
},
},
{
name: 'keepfresh',
description: 'Dabbing out food waste and over-spending on groceries',
elevatorPitch: `keepfresh is an iOS app that will allow users to track the food in their
homes, see when items are expiring, and find recipes based on their inventory.`,
banner: {
// TODO: update when https://github.com/ubclaunchpad/food-doods/tree/showcase is merged
url: 'https://raw.githubusercontent.com/ubclaunchpad/food-doods/showcase/photos/keepfresh-thumbnail.png',
hasName: true,
},
media: {
type: 'youtube',
id: 'TWh32lj3Yjs',
},
links: {
repository: 'https://github.com/ubclaunchpad/food-doods',
// TODO: update when https://github.com/ubclaunchpad/food-doods/tree/showcase is merged
writeup: 'https://github.com/ubclaunchpad/food-doods/blob/showcase/README.md',
},
},
{
name: 'Access Youth',
description: '💪 Supporting troubled youth outreach and empowerment',
elevatorPitch: `Access Youth is a non-profit organization designed to help at-risk youth
across the Greater Vancouver area by providing them with counseling services. The organization
has a bus program which serves as a mobile counseling service for at-risk youth. Our mobile
app targets the users of the bus program.`,
banner: {
url: 'https://raw.githubusercontent.com/ubclaunchpad/accessyouth-api/fb271fc2fad9a89a637f58769408ea4efea0faf0/Thumbnail.png',
hasName: true,
},
links: {
repository: 'https://github.com/ubclaunchpad/accessyouth-api',
writeup: 'https://github.com/ubclaunchpad/accessyouth-api#access-youth-mobile---our-experience-building-this',
},
},
],
/**
* Feature past Launch Pad projects.
*
* Each element must satisfy [[`Project`]].
*/
featuredProjects: [
{
name: 'Inertia',
description: '✈️ Effortless, self-hosted continuous deployment',
elevatorPitch: `Inertia is an app that enables effortless setup and management of automated,
continuous deployment on any virtual private server. It is used by several Launch Pad projects
and features a serverside service, a command-line interface, and the ability to deploy
almost anything anywhere.`,
banner: {
url: 'https://raw.githubusercontent.com/ubclaunchpad/inertia/master/.static/banner.png',
hasName: true,
},
media: {
type: 'youtube',
id: 'amBYMEKGzTs',
startAt: 17945,
},
links: {
repository: 'https://github.com/ubclaunchpad/inertia',
website: 'https://inertia.ubclaunchpad.com',
writeup: 'https://medium.com/ubc-launch-pad-software-engineering-blog/building-continuous-deployment-87a2bd8eedbe',
},
},
{
name: 'Rocket 2',
description: '🚀 Slack bot for UBC Launch Pad',
elevatorPitch: `Rocket 2 is a from-the-ground-up rebuild of our previous in-house management
Slack bot. Rocket 2 handles team management, GitHub permissions, member onboarding, and
more through a robust set of commands accessible from Slack.`,
banner: {
url: 'https://raw.githubusercontent.com/ubclaunchpad/rocket2/master/docs/rocket-banner.gif',
},
links: {
repository: 'https://github.com/ubclaunchpad/rocket2',
website: 'https://rocket2.readthedocs.io',
},
},
{
name: 'Bumper',
description: '🥊 Fast-paced multiplayer arcade game',
elevatorPitch: `Bumper is a game fast-paced multiplayer game where you try to bump other
players out of the playing field to stay alive.`,
banner: {
url: 'https://raw.githubusercontent.com/ubclaunchpad/bumper/master/.static/bumper-small.gif',
},
links: {
repository: 'https://github.com/ubclaunchpad/bumper',
},
},
{
name: 'ubclaunchpad.com',
description: '✨ the new UBC Launch Pad website!',
elevatorPitch: `This website is also a Launch Pad project, designed and implemented from the
ground up by members of our team!`,
banner: {
url: require('../.static/banner.png') as string,
hasName: true, // this one should be self-explanatory
},
links: {
repository: 'https://github.com/ubclaunchpad/ubclaunchpad.com',
writeup: 'https://medium.com/ubc-launch-pad-software-engineering-blog/introducing-the-new-launch-pad-website-42175181d644',
},
},
{
name: 'Cumulus',
description: '💸 Cryptocurrency that doesn\'t waste your time',
elevatorPitch: `Cumulus is a cryptocurrency that allows users to send and receive tokens on
a P2P network or "mine" on the network to create tokens for themselves. Cumulus reimagines
the proof-of-work mechanism used by Bitcoin and many other major cryptocurrencies to put
coin mining computation time to good use.`,
banner: {
url: 'https://raw.githubusercontent.com/ubclaunchpad/cumulus/dev/.static/banner.png',
hasName: true,
},
links: {
repository: 'https://github.com/ubclaunchpad/cumulus',
writeup: 'https://medium.com/ubc-launch-pad-software-engineering-blog/introducing-cumulus-940456b7e05c',
},
},
{
name: 'Minutes',
description: '🔭 Speaker diarization via transfer learning',
elevatorPitch: `Minutes is a Python library for speaker diarization: the process of splitting
up an audio file into its unique speakers. Its base model is trained on hundreds of hours
of spoken English text, and it uses transfer learning to predict on new speakers.`,
banner: {
url: 'https://raw.githubusercontent.com/ubclaunchpad/minutes/master/.static/spec.png',
},
links: {
repository: 'https://github.com/ubclaunchpad/minutes',
writeup: 'https://medium.com/ubc-launch-pad-software-engineering-blog/speaker-diarisation-using-transfer-learning-47ca1a1226f4',
},
},
{
name: 'etch.space',
description: '📝 A live multi-user collaborative etch-a-sketch',
elevatorPitch: `Etch is a live multi-user collaborative etch-a-sketch built on websockets.
Each user is assigned their own color and can draw whatever their imagination allows while
watching others draw at the same time.`,
banner: {
url: 'https://raw.githubusercontent.com/ubclaunchpad/etch.space/master/banner.png',
hasName: true,
},
links: {
repository: 'https://github.com/ubclaunchpad/etch.space',
},
},
{
name: 'Eat',
description: 'Should we eat 🌮, 🍟, or 🍣?',
elevatorPitch: `Eat helps you decide on a restaurant that accommodates everyone's preferences
by suggesting places to eat based the group's location, dietary restrictions, price range,
and intended meal time. After everyone has voted on the suggested restaurants the app
selects the best one for the group.`,
banner: {
url: 'https://raw.githubusercontent.com/ubclaunchpad/eat/master/Images/animated-banner.gif',
hasName: true,
},
links: {
repository: 'https://github.com/ubclaunchpad/eat',
app: {
url: 'https://apps.apple.com/ca/app/eat-now-find-where-to-eat/id1366648100',
type: 'ios',
},
},
},
],
/**
* Links to Launch Pad online!
*/
socials: {
instagram: 'https://www.instagram.com/ubclaunchpad',
facebook: 'https://www.facebook.com/ubclaunchpad',
medium: 'https://medium.com/ubc-launch-pad-software-engineering-blog',
github: 'https://github.com/ubclaunchpad',
linkedin: 'https://www.linkedin.com/company/10054664',
youtube: 'https://www.youtube.com/channel/UCS0ghlwqTOc1RH_nYENNT5A',
email: '[email protected]',
buttondown: 'https://buttondown.email/ubclaunchpad',
},
};
/**
* Sponsorship configuration.
*
* @category Configuration
*/
export const sponsorshipConfig: {
packageURL: string;
sponsors: ClubSponsor[];
} = {
/**
* Link to the most recent sponsorship package.
*
* We will generate a redirect for this link under https://ubclaunchpad.com/sponsorship
*/
packageURL: 'https://drive.google.com/file/d/139k5jirMNCkOGth6MXH8JsDJcurhseV5/view',
/**
* Current sponsors.
*
* Each element must satisfy [[`ClubSponsor`]].
*/
sponsors: [
{
name: 'Axiom Zen',
website: 'https://www.axiomzen.co/',
tier: 'gold',
logo: {
url: 'https://res.cloudinary.com/dfgx570fg/image/upload/w_700,h_700,c_limit/v1468362472/f2ed2lbpqujvxa8r6zux.png',
filter: 'invert()',
},
},
{
name: 'East Side Game Studio',
website: 'https://www.eastsidegames.com/',
tier: 'gold',
logo: {
url: 'https://www.eastsidegames.com/wp-content/themes/esgnew/img/logo-final.png',
filter: 'invert() grayscale(0.5)',
},
},
{
name: 'GitHub',
website: 'https://github.com',
logo: {
url: 'https://github.githubassets.com/images/modules/logos_page/GitHub-Logo.png',
filter: 'invert()',
},
},
{
name: 'Netlify',
website: 'https://netlify.com',
logo: {
url: 'https://www.netlify.com/img/press/logos/full-logo-dark.png',
},
},
{
name: 'Fathom Analytics',
website: 'https://usefathom.com',
logo: {
url: require('./assets/logos/fathom-light.svg'),
},
},
],
};
/**
* Defines a redirect - see [[`redirectsConfig`]].
*/
type Redirect = {
/**
* Path to redirect, such as `/my/amazing-link`. This will translate to `ubclaunchpad.com/my/amazing-link`.
*/
path: string;
/**
* URL or path to redirect to, such as `https://my-event-page.com`.
*/
target: string;
}
/**
* Declare additional redirects to generate on each build. Make sure it does not conflict with any
* existing redirects - a complete list is available in [`redirects.txt`](https://ubclaunchpad.com/redirects.txt).
*
* See [[`Redirect`]] for options.
*
* @category Configuration
*/
export const redirectsConfig: Redirect[] = [
{
path: '/events',
target: `${clubConfig.socials.facebook}/events`,
},
{
path: '/slack',
target: 'https://ubclaunchpad.slack.com',
},
{
// newsletter redirect to #resources, which is nicer-looking than the buttondown page
path: '/newsletter',
target: '/#resources',
},
{
// redirect to latest campaign's Medium blog post - learn more about campaigns in our handbook:
// https://docs.ubclaunchpad.com/handbook/tools/social-media#social-media-campaigns
path: '/latest',
target: `${clubConfig.socials.medium}/state-of-launch-pad-2020-2da3f4cfbc36`,
},
];