Skip to content

Commit 5f0ea98

Browse files
Merge pull request #93 from TreeHacks/treehacks-2023
updates
2 parents 2382fd6 + 41f945c commit 5f0ea98

16 files changed

Lines changed: 1114 additions & 166 deletions

src/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
Switch,
1919
Redirect,
2020
} from "react-router-dom";
21+
import Prizes from "./js/prizes/Prizes.jsx";
2122

2223
const reload = () => window.location.reload();
2324

@@ -40,7 +41,7 @@ class Main extends React.Component {
4041
<div>
4142
<Countdown />
4243
<Resources />
43-
<p>Note: all times below are in PT (California time)</p>
44+
<p>Note: all times below are in PST (California time)</p>
4445
<Schedule />
4546
<div id="group">
4647
<Announcements setAnnouncementData={this.setAnnouncementData} />
@@ -85,6 +86,7 @@ function App() {
8586
<Route exact path="/" component={Main} />
8687
<Route exact path="/_room/:roomId" component={RoomStatus} />
8788
<Route exact path="/apisresources" component={Apis} />
89+
<Route exact path="/prizes" component={Prizes} />
8890
<Route exact path="/challenges/:challengeId" component={Challenge} />
8991
<Route path="/apple-app-site-association" onEnter={reload} />
9092

src/js/apis/Apis.jsx

Lines changed: 67 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React from "react";
1+
import React, { useEffect, useState } from "react";
22
import Bricklayer from "bricklayer";
33
import data from "./data.yaml";
44

@@ -8,9 +8,43 @@ export default class extends React.Component {
88
this.myRef = React.createRef();
99
this.state = {
1010
tag: null,
11+
searchInput: "",
12+
companyData: data.companies,
1113
};
1214
this.onTagClick = this.onTagClick.bind(this);
15+
this.handleChange = this.handleChange.bind(this);
1316
}
17+
18+
handleChange = (e) => {
19+
e.preventDefault();
20+
this.setState({ searchInput: e.target.value });
21+
//const dataC = [{ name: "Belgium", continent: "Europe" }];
22+
if (this.state.searchInput.length > 0) {
23+
const filtered = this.state.companyData.filter(
24+
(country) =>
25+
country.apis[0].title
26+
.toLowerCase()
27+
.includes(this.state.searchInput) ||
28+
country.apis[0].description
29+
.toLowerCase()
30+
.includes(this.state.searchInput)
31+
);
32+
this.setState({ companyData: filtered });
33+
console.log(filtered);
34+
}
35+
};
36+
37+
/*
38+
39+
const filtered = constantProjectData.filter(
40+
(project) =>
41+
project.projectTitle?.includes(search) ||
42+
project.projectDescription?.includes(search) ||
43+
project.builders?.includes(search) ||
44+
project.submitFirstName?.includes(search) ||
45+
project.submitLastName?.includes(search)
46+
);*/
47+
1448
componentDidMount() {
1549
this.bricklayer = new Bricklayer(this.myRef.current);
1650
}
@@ -27,22 +61,40 @@ export default class extends React.Component {
2761
});
2862
}
2963
}
64+
3065
render() {
3166
return (
3267
<div class="apis container">
3368
<div className="row">
3469
<h1 className="api-title">APIs & Resources</h1>
3570
</div>
3671
<div className="row">
37-
<button
72+
{/* <button
3873
className={`api-tag-button ${
3974
null == this.state.tag ? "active" : ""
4075
}`}
4176
onClick={() => this.onTagClick(null)}
4277
>
4378
All
44-
</button>
45-
{(data.tags || []).map((tag) => (
79+
</button> */}
80+
Here you can find a list of all the API's offered by our sponsoring
81+
companies, along with any resources and forms we post to receive cloud
82+
credits.
83+
{/* <input
84+
type="text"
85+
placeholder="Search here"
86+
style={{
87+
width: "80%",
88+
borderRadius: "20px",
89+
backgroundColor: "transparent",
90+
border: "1px solid black",
91+
padding: "10px 15px",
92+
margin: "20px 0",
93+
}}
94+
onChange={this.handleChange}
95+
value={this.state.searchInput}
96+
/> */}
97+
{/* {(data.tags || []).map((tag) => (
4698
<button
4799
className={`api-tag-button ${
48100
tag == this.state.tag ? "active" : ""
@@ -51,10 +103,10 @@ export default class extends React.Component {
51103
>
52104
{tag}
53105
</button>
54-
))}
106+
))} */}
55107
</div>
56108
<div className="bricklayer" ref={this.myRef}>
57-
{(data.companies || []).map((company) =>
109+
{this.state.companyData.map((company) =>
58110
company.apis.map((api) => {
59111
if (
60112
this.state.tag == null ||
@@ -70,13 +122,15 @@ export default class extends React.Component {
70122
slack: <strong>#{company.slack}</strong>
71123
</p>
72124
)}
73-
{api.links.map((link) => (
74-
<a target="_blank" href={link.url}>
75-
<button className="main-button">
76-
{link.title || link.url}
77-
</button>
78-
</a>
79-
))}
125+
{console.log(api)}
126+
{api.links != null &&
127+
api.links.map((link) => (
128+
<a target="_blank" href={link.url}>
129+
<button className="main-button">
130+
{link.title || link.url}
131+
</button>
132+
</a>
133+
))}
80134
</div>
81135
</div>
82136
);

src/js/apis/data.yaml

Lines changed: 70 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,110 +1,115 @@
11
tags:
2-
-
2+
-
33
companies:
4-
- company: GCP
4+
- company: Vercel
55
apis:
6-
- title: GCP Credits
7-
description: $50 GCP credit per hacker
6+
- title: Vercel
7+
description: Create projects, deployments, and more with programmatic access to your Vercel account.
88
links:
9-
- title: Form
10-
url: https://docs.google.com/forms/d/e/1FAIpQLScSPqesC4HwHu1HmWqgI3HD_-N0syDsJBqVM_El4S-fz7IRLw/viewform
9+
- title: API
10+
url: https://vercel.com/docs/rest-api
1111
tags:
1212
- Geospatial
13-
- company: AWS
13+
- company: Omnichain
1414
apis:
15-
- title: AWS Credit forms
16-
description: $200 GCP credit per team
15+
- title: Omnichain Smart Contracts and Messaging
16+
description: Smart Contracts and Messaging Platform that lets you build dApps that span many blockchains.
1717
links:
18-
- title: Form
19-
url: https://treehacks.typeform.com/to/wVmTH4H6
18+
- title: API
19+
url: zetachain.com/docs/
2020
tags:
2121
- Geospatial
22-
- company: Null
22+
- company: Arduino
2323
apis:
24-
- title: Bubble API
25-
description: Bubble can expose your custom database schema as a RESTful API with one click, or allow you to create custom endpoints
24+
- title: Arduino Cloud REST API & SDK
25+
description: The Arduino IoT Cloud REST API can be accessed through a set of endpoints to manage Devices, Things, Properties, and more. It can be accessed via any HTTP client and is supported by JavaScript, Python, and Golang clients.
2626
links:
27-
- title: Documentation
28-
url: https://manual.bubble.io/core-resources/api
27+
- title: API
28+
url: https://docs.arduino.cc/arduino-cloud/getting-started/arduino-iot-api
2929
tags:
3030
- Geospatial
31-
- company: Null
31+
- company: NEAR Protocol
3232
apis:
33-
- title: Free access to all Bubble features during TreeHacks
34-
description: To get access to features not normally offered on our free plan, visit link below to tag your account, and then pick the free “Hackathon” plan on our Settings -> App Plan tab in the editor.
33+
- title: NEAR.social
34+
description:
35+
NEAR Social is a social networking platform the runs on smart contract (social.near) deployed on the NEAR Protocol (a layer 1 blockchain) that allows for anyone to post their ReactJS like code as widgets directly on the open web. Not only can anyone create or fork any widget directly on the platform near.social, but all data can be indexed from the blockchain known as the Social DB. Imagine CodePen meets Facebook meets OpenAPI.
36+
To access -> 👋🏽 1st Make An Account → Create Wallet → Sign into NEAR Social
3537
links:
36-
- title: Link
37-
url: https://bubble.io/event/treehacks-2022
38+
- title: GitHub
39+
url: https://github.com/nearsocial/
40+
- title: Social Docs
41+
url: https://thewiki.near.page/near.social_docs
42+
- title: NEAR Social Developer Telegram
43+
url: https://nearbuilders.com/tg-social
3844
tags:
3945
- Geospatial
40-
- company: Intel
46+
- company: Wolfram
4147
apis:
42-
- title: Intel oneAPI Learning Paths
43-
description: A curated set of training modules that help you learn specific tools and technologies. You learn the code and practice using Intel® DevCloud.
48+
- title: Wolfram|One
49+
description: Access to both Desktop and Cloud, Wolfram Language, Knowledgebase, FreeCDF deployment, 5000 Wolfram|Alpha API calls, 5000 Cloud Credits, 2 installations per user, and 2 GB of Cloud Storage.
4450
links:
45-
- title: Learn More
46-
url: https://www.intel.com/content/www/us/en/developer/tools/oneapi/training/overview.html
4751
tags:
4852
- Geospatial
49-
- company: Intel
53+
- company: Supabase
5054
apis:
51-
- title: Intel DevCloud
52-
description: A developer sandbox to develop, test and run workloads across a range of Intel CPUs, GPUs and FPGAs using oneAPI.
55+
- title: Supabase
56+
description: Access to both Desktop and Cloud, Wolfram Language, Knowledgebase, FreeCDF deployment, 5000 Wolfram|Alpha API calls, 5000 Cloud Credits, 2 installations per user, and 2 GB of Cloud Storage.
5357
links:
54-
- title: Learn More
55-
url: https://devcloud.intel.com/oneapi/get_started
58+
- title: Access Link
59+
url: https://app.supabase.com/
5660
tags:
5761
- Geospatial
58-
- company: Intel
62+
- company: Checkbook.io
5963
apis:
60-
- title: Intel GitHub
61-
description: Samples for oneAPI toolkits.
64+
- title: Checkbook Payments API
65+
description: The Checkbook API
6266
links:
63-
- title: Learn More
64-
url: https://github.com/oneapi-src/oneAPI-samples
67+
- title: API
68+
url: https://docs.checkbook.io/reference/post-check-digital
6569
tags:
6670
- Geospatial
67-
- company: Nope
71+
- company: Retool
6872
apis:
69-
- title: InterSystems Resources
70-
description: Here you’ll find all that you need to use InterSystems FHIR cloud services in your project.
73+
- title: Retool
74+
description: Retool is the ultimate hackathon hack! It's a low-code platform that makes building any app a breeze with minimal setup required. With Retool's drag-and-drop app builder, you can assemble custom apps, dashboards, and admin panels in minutes. Plus, with the ability to write custom code and connect to any data source or API, you can create the perfect tool for your hackathon demo without having to fuss about setup.
7175
links:
72-
- title: Learn More
73-
url: https://ischack.netlify.app/#home
76+
- title: Register for the free plan here
77+
url: https://login.retool.com/auth/signup?plan=free
7478
tags:
7579
- Geospatial
76-
- company: Nope
80+
- company: Protocol Labs
7781
apis:
78-
- title: ScaleAI
79-
description: Scale Rapid is the fastest way to get production quality labels.
82+
- title: Estuary API
83+
description: Allows hackers to upload data to Estuary. To access, hackers msut apply for an invite - in the application, hackers must state they are a part of TreeHacks.
8084
links:
81-
- title: API docs
82-
url: https://docs.scale.com/reference/introduction
83-
- title: Product Docs
84-
url: https://scale.com/docs/getting-started-rapid
85-
- title: Self-label Docs
86-
url: https://scale.com/docs/rapid-faq
87-
- title: CoLab Starter
88-
url: https://colab.research.google.com/drive/1XZjbVtA2oGOdMp0-v0E80ujMB8tbeh7x?usp=sharing
89-
- title: $250 Credits For Students
90-
url: https://scale.com/rapid/university
85+
- title: Link to apply for an invite
86+
url: https://docs.estuary.tech/get-invite-key
9187
tags:
9288
- Geospatial
93-
- company: Nope
89+
- company: Otsuka Valuenex
9490
apis:
95-
- title: Nucleus API
96-
description: Scale Nucleus is a developer-first product with a REST API
91+
- title: VALUENEX Radar
92+
description: VALUENEX Radar is a data visualization platform with our proprietary algorithm to analyze any type of compiled text, such as start-up data, scientific papers, news, financial reports, customer feedback, or anything else you can think of, to gain insight into previously unseen patterns and future movements, allowing for detection and extraction of key knowledge such as untapped potential, new opportunities, competitive threats, and collaborative links to make better decisions for future strategy.
9793
links:
98-
- title: Learn More
99-
url: https://dashboard.scale.com/nucleus/docs/api
94+
- title: NOT GIVEN YET
95+
url:
10096
tags:
10197
- Geospatial
102-
- company: Nope
98+
- company: Mem
10399
apis:
104-
- title: VMWare Tanzu Community Edition
105-
description: VMware Tanzu Community Edition is a full-featured, easy-to-manage Kubernetes platform for learners and users, especially those working in small-scale or pre-production environments
100+
- title: Mem API
101+
description: The Mem API is a way for people to develop integrations and flows for Mem. The Mem API enables a variety of information—text messages, sound clips, videos, contacts, projects, emails, documents, tasks, calendar events, you name it—to flow into and out of your Mem knowledge graph, the place where your information is connected, contextualized, and automatically structured into an intelligent, assistive database.
106102
links:
107-
- title: Learn More
108-
url: https://tanzucommunityedition.io/
103+
- title: API
104+
url: https://docs.mem.ai/
109105
tags:
110-
- Geospatial
106+
- Geospatial
107+
- company: Mem
108+
apis:
109+
- title: Convex API
110+
description: Convex platform getting started, usage docs, and reference APIs
111+
links:
112+
- title: API
113+
url: https://docs.convex.dev/tutorial
114+
tags:
115+
- Geospatial

src/js/content.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
{
22
"hackpacks": [
3+
{
4+
"name": "Computer Vision (Machine Learning)",
5+
"link": "https://github.com/TreeHacks/computer-vision-hackpack"
6+
},
7+
{
8+
"name": "Web + Firebase",
9+
"link": "https://github.com/TreeHacks/hackpack-web-firebase"
10+
},
11+
{
12+
"name": "Hardware",
13+
"link": "https://github.com/TreeHacks/hardware_hackpack"
14+
},
315
{
416
"name": "Android (Java)",
517
"link": "https://github.com/TreeHacks/hackpack-android"

src/js/countdown.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React from "react";
22
import { START_DATE, default as Timer } from "./timer.jsx";
33

44
function Countdown() {
5-
var units = ["d", "h", "m", "s"];
5+
var units = ["days", "hours", "minutes", "seconds"];
66
var timeline = [];
77
for (var i = 0; i < 4; i++) {
88
timeline.push(<TimerUnit unit={units[i]} key={i} />);

0 commit comments

Comments
 (0)