Skip to content

Commit 2c909b8

Browse files
Merge pull request #564 from GDGAhmedabad/develop
[Update] Dhrumil Shah's company details, Romin's bio and session, [Add] Team - talk committee
2 parents 336606d + 332e51c commit 2c909b8

File tree

2 files changed

+149
-19
lines changed

2 files changed

+149
-19
lines changed

public/data/firestore-data.json

Lines changed: 121 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -563,14 +563,14 @@
563563
},
564564
"117": {
565565
"complexity": "Intermediate",
566-
"description": "",
566+
"description": "In this workshop, participants will build an agent using the Agent Development Kit (ADK) that utilizes the MCP Toolbox for Databases.\r\n\r\nParticipants will first understand multiple technologies and services like: Model Context Protocol (MCP), Agent Development Kit (ADK), Google Cloud and how to create real world agents that are grounded in your data. \r\n\r\nWhat you'll do\r\n--------------------\r\n1. Design, Build and Deploy an Agent that will answer user queries on hotels in a location or search for hotels by name.\r\n\r\nWhat you'll learn\r\n------------------------\r\n1. Provisioning a Cloud SQL for PostgreSQL database with sample data.\r\n2. Setup MCP Toolbox for Databases for the Cloud SQL for PostgreSQL database instance.\r\n3. Integrate the MCP Server functionality in AI Assistants like Gemini CLI. \r\n3. Design and develop an Agent using Agent Development Kit (ADK) to answer user queries.\r\n4. Test out the Agent and MCP Toolbox for Databases locally. \r\n5. (Optionally) Deploy the Agent in Google Cloud.",
567567
"language": "English",
568568
"presentation": "",
569-
"speakers": [],
569+
"speakers": ["romin_irani"],
570570
"tags": [
571571
"Workshop"
572572
],
573-
"title": "Workshop #1",
573+
"title": "Build a Travel Agent using MCP Toolbox for Databases and Agent Development Kit (ADK)",
574574
"videoId": ""
575575
},
576576
"118": {
@@ -827,8 +827,8 @@
827827
"name": "google"
828828
}
829829
],
830-
"bio": "Romin works as a Developer Advocate at Google. He has over 25+ years of experience in the software industry and lives in Mumbai, India.",
831-
"company": "Google Cloud",
830+
"bio": "Romin works as a Developer Advocate at Google. He has 30 years of experience in the software industry and lives in Mumbai, India.",
831+
"company": "Google",
832832
"companyLogo": "",
833833
"companyLogoUrl": "https://firebasestorage.googleapis.com/v0/b/devfestahm-develop.appspot.com/o/images%2Fpeople%2Fspeakers%2F2019%2Fcompany%2Fgoogle.png?alt=media&token=7d3b627c-bbd0-4941-9bcc-a67cacc0761c",
834834
"country": "Mumbai",
@@ -837,7 +837,7 @@
837837
"photo": "",
838838
"photoUrl": "https://firebasestorage.googleapis.com/v0/b/devfestahm-develop.appspot.com/o/images%2Fpeople%2Fspeakers%2F2023%2Fromin-irani.png?alt=media&token=9c10accb-3ff6-4a07-9d01-715d8eece673",
839839
"pronouns": "he/him",
840-
"shortBio": "Romin works as a Developer Advocate at Google. He has over 25+ years...",
840+
"shortBio": "Romin works as a Developer Advocate at Google. He has 30 years of experience in...",
841841
"socials": [
842842
{
843843
"icon": "twitter",
@@ -846,7 +846,7 @@
846846
},
847847
{
848848
"icon": "linkedin",
849-
"link": "https://www.linkedin.com/in/iromin/",
849+
"link": "https://www.linkedin.com/in/iromin",
850850
"name": "LinkedIn"
851851
},
852852
{
@@ -941,9 +941,9 @@
941941
}
942942
],
943943
"bio": "Dhrumil Shah, The Architect at Scapia, GDE for Flutter & Dart, Creator of @Flutter_Flakes. Startup Mentor, Experienced Speaker, Industry Advisory Board Member.",
944-
"company": "Scapia Technology Private Limited",
944+
"company": "Scapia",
945945
"companyLogo": "",
946-
"companyLogoUrl": "https://firebasestorage.googleapis.com/v0/b/devfestahm-develop.appspot.com/o/images%2Fpeople%2Fspeakers%2F2025%2Fcompany%2Fscapia.png?alt=media&token=fe0722f2-7375-4a5b-951b-0cfc5c25b06c",
946+
"companyLogoUrl": "https://firebasestorage.googleapis.com/v0/b/devfestahm-develop.appspot.com/o/images%2Fpeople%2Fspeakers%2F2025%2Fcompany%2Fscapia.png?alt=media&token=209f353d-5bd4-4e22-a4e0-3ab6cb7b1cda",
947947
"country": "Ahmedabad, Gujarat",
948948
"featured": false,
949949
"name": "Dhrumil Shah",
@@ -1163,6 +1163,112 @@
11631163
"order": 1,
11641164
"title": "Creative Team"
11651165
},
1166+
{
1167+
"members": [
1168+
{
1169+
"name": "Kaushik Parmar",
1170+
"photo": "",
1171+
"photoUrl": "https://firebasestorage.googleapis.com/v0/b/devfestahm-develop.appspot.com/o/images%2Fpeople%2Fothers%2Fvolunteers%2F2025%2Fkaushik_parmar_25.png?alt=media&token=0c242f19-e808-4659-8f4b-413aca33e9e9",
1172+
"socials": [
1173+
{
1174+
"icon": "twitter",
1175+
"link": "https://x.com/kaushik_512",
1176+
"name": "Twitter"
1177+
},
1178+
{
1179+
"icon": "linkedin",
1180+
"link": "https://www.linkedin.com/in/parmarkaushik",
1181+
"name": "LinkedIn"
1182+
}
1183+
],
1184+
"order": 0,
1185+
"title": ""
1186+
},
1187+
{
1188+
"name": "Pankaj Sakariya",
1189+
"photo": "",
1190+
"photoUrl": "https://firebasestorage.googleapis.com/v0/b/devfestahm-develop.appspot.com/o/images%2Fpeople%2Fothers%2Fvolunteers%2F2025%2Fpankaj_sakariya_25.jpeg?alt=media&token=de29aabd-3752-42fd-b03e-7d8cfba354cf",
1191+
"socials": [
1192+
{
1193+
"icon": "twitter",
1194+
"link": "https://x.com/SakariyaPankaj",
1195+
"name": "Twitter"
1196+
},
1197+
{
1198+
"icon": "linkedin",
1199+
"link": "https://www.linkedin.com/in/pankajsakariya",
1200+
"name": "LinkedIn"
1201+
}
1202+
],
1203+
"order": 1,
1204+
"title": ""
1205+
},
1206+
{
1207+
"name": "Vatsal Trivedi",
1208+
"photo": "/images/people/others/vatsal_trivedi_23.jpg",
1209+
"photoUrl": "https://firebasestorage.googleapis.com/v0/b/devfestahm-develop.appspot.com/o/images%2Fpeople%2Fothers%2Fvatsal_trivedi_23.jpg?alt=media&token=1656d2c4-c2e8-46a4-92e1-e2b2a2563a8f",
1210+
"socials": [
1211+
{
1212+
"icon": "twitter",
1213+
"link": "https://twitter.com/trivedivatsal_",
1214+
"name": "Twitter"
1215+
},
1216+
{
1217+
"icon": "linkedin",
1218+
"link": "https://www.linkedin.com/in/trivedi-vatsal",
1219+
"name": "LinkedIn"
1220+
},
1221+
{
1222+
"icon": "website",
1223+
"link": "https://dribbble.com/trivedivatsal",
1224+
"name": "Dribbble"
1225+
},
1226+
{
1227+
"icon": "facebook",
1228+
"link": "https://www.facebook.com/trivedivatsl/",
1229+
"name": "Facebook"
1230+
}
1231+
],
1232+
"order": 3,
1233+
"title": ""
1234+
},
1235+
{
1236+
"name": "Gaurang Upadhyay",
1237+
"photo": "",
1238+
"photoUrl": "https://firebasestorage.googleapis.com/v0/b/devfestahm-develop.appspot.com/o/images%2Fpeople%2Fothers%2Fvolunteers%2F2025%2Fgaurang_upadhyay_25.jpeg?alt=media&token=eb7f7262-b93f-46a6-8b5d-f6f7633c4372",
1239+
"socials": [
1240+
{
1241+
"icon": "linkedin",
1242+
"link": "https://www.linkedin.com/in/gaurang1",
1243+
"name": "LinkedIn"
1244+
}
1245+
],
1246+
"order": 4,
1247+
"title": ""
1248+
},
1249+
{
1250+
"name": "Dhrumil Shah",
1251+
"photo": "",
1252+
"photoUrl": "https://firebasestorage.googleapis.com/v0/b/devfestahm-develop.appspot.com/o/images%2Fpeople%2Fcore-team%2F2022%2Fdhrumil-shah.png?alt=media&token=d73ffb37-d000-4dc2-aa9f-a0a1209e40d9",
1253+
"socials": [
1254+
{
1255+
"icon": "twitter",
1256+
"link": "https://twitter.com/dhuma1981",
1257+
"name": "Twitter"
1258+
},
1259+
{
1260+
"icon": "facebook",
1261+
"link": "https://www.facebook.com/dhuma1981",
1262+
"name": "Facebook"
1263+
}
1264+
],
1265+
"order": 5,
1266+
"title": ""
1267+
}
1268+
],
1269+
"order": 2,
1270+
"title": "Talk Committee"
1271+
},
11661272
{
11671273
"members": [
11681274
{
@@ -1252,7 +1358,7 @@
12521358
"title": ""
12531359
}
12541360
],
1255-
"order": 2,
1361+
"order": 3,
12561362
"title": "Social Media Team"
12571363
},
12581364
{
@@ -1282,7 +1388,7 @@
12821388
"title": ""
12831389
}
12841390
],
1285-
"order": 3,
1391+
"order": 4,
12861392
"title": "Web Team"
12871393
},
12881394
{
@@ -1506,7 +1612,7 @@
15061612
"title": ""
15071613
}
15081614
],
1509-
"order": 4,
1615+
"order": 5,
15101616
"title": "Media Team"
15111617
},
15121618
{
@@ -1546,7 +1652,7 @@
15461652
}
15471653
],
15481654
"title": "Registration and Swags Team",
1549-
"order": 5
1655+
"order": 6
15501656
},
15511657
{
15521658
"members": [
@@ -1670,7 +1776,7 @@
16701776
}
16711777
],
16721778
"title": "Content & Event Anchor Team",
1673-
"order": 6
1779+
"order": 7
16741780
},
16751781
{
16761782
"members": [
@@ -2065,7 +2171,7 @@
20652171
}
20662172
],
20672173
"title": "Speaker Buddy",
2068-
"order": 7
2174+
"order": 8
20692175
}
20702176
],
20712177
"tickets": [

src/pages/team-page.ts

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
1-
import { customElement } from '@polymer/decorators';
1+
import { Failure, Pending } from '@abraham/remotedata';
2+
import { computed, customElement, property } from '@polymer/decorators';
23
import '@polymer/paper-icon-button';
34
import { html, PolymerElement } from '@polymer/polymer';
45
import '@power-elements/lazy-image';
5-
import { team as teams } from '../../public/data/firestore-data.json';
66
import '../components/hero/simple-hero';
77
import '../components/markdown/short-markdown';
88
import '../elements/shared-styles';
9+
import { RootState } from '../store';
910
import { ReduxMixin } from '../store/mixin';
11+
import { selectTeamsAndMembers } from '../store/teams-members/selectors';
12+
import { initialTeamsMembersState } from '../store/teams-members/state';
1013
import { heroSettings, loading, team } from '../utils/data';
1114
import { updateMetadata } from '../utils/metadata';
1215

@@ -134,8 +137,15 @@ export class TeamPage extends ReduxMixin(PolymerElement) {
134137
</div>
135138
136139
<div class="container">
140+
<template is="dom-if" if="[[pending]]">
141+
<p>[[loading]]</p>
142+
</template>
143+
144+
<template is="dom-if" if="[[failure]]">
145+
<p>Error loading teams.</p>
146+
</template>
137147
138-
<template is="dom-repeat" items="[[teams]]" as="team">
148+
<template is="dom-repeat" items="[[teamsMembers.data]]" as="team">
139149
<div class="team-title">[[team.title]]</div>
140150
141151
<div class="team-block">
@@ -174,11 +184,25 @@ export class TeamPage extends ReduxMixin(PolymerElement) {
174184
private heroSettings = heroSettings.team;
175185
private loading = loading;
176186
private team = team;
177-
private teams = teams;
178187

188+
@property({ type: Object })
189+
teamsMembers = initialTeamsMembersState;
190+
191+
@computed('teamsMembers')
192+
get pending() {
193+
return this.teamsMembers instanceof Pending;
194+
}
195+
196+
@computed('teamsMembers')
197+
get failure() {
198+
return this.teamsMembers instanceof Failure;
199+
}
179200
override connectedCallback() {
180201
super.connectedCallback();
181202
updateMetadata(this.heroSettings.title, this.heroSettings.metaDescription);
182203
}
183204

205+
override stateChanged(state: RootState) {
206+
this.teamsMembers = selectTeamsAndMembers(state);
207+
}
184208
}

0 commit comments

Comments
 (0)