diff --git a/config/speakers.json b/config/speakers.json
index 2137d041..a4dd2dbf 100644
--- a/config/speakers.json
+++ b/config/speakers.json
@@ -1,11 +1,13 @@
[
{
"location": "",
+ "year":"2024",
"city": "All",
"lists": []
},
{
"location": "Helsinki, Finland",
+ "year":"2024",
"city": "Helsinki",
"agenda": [],
"lists": []
@@ -13,13 +15,698 @@
{
"location": "London, United Kingdom",
"city": "London",
+ "year":"2024",
"agenda": [],
"lists": []
},
{
"city": "Paris",
+ "year":"2024",
"location": "Paris, France",
"lists": [],
"agenda": []
+ },
+ {
+ "location": "",
+ "year":"2023",
+ "city": "All",
+ "lists": []
+ },
+ {
+ "location": "Madrid, Spain",
+ "city": "Madrid",
+ "year":"2023",
+ "agenda": [
+ {
+ "time": "8:30 AM CEST - 9:30 AM CEST",
+ "type": "Registration"
+ },
+ {
+ "time": "9:30 AM CEST - 10:00 AM CEST",
+ "type": "Welcome Speech",
+ "speaker": 4
+ },
+ {
+ "time": "10:00 AM CEST - 10:30 AM CEST",
+ "session": "Everything You Wish To Know About The AsyncAPI Community",
+ "speaker": 10,
+ "type": "Keynote Speaker"
+ },
+ {
+ "time": "10:30 AM CEST - 11:00 AM CEST",
+ "session": "AsyncAPI v3: Unleashing The Power of Asynchronous APIs Design",
+ "speaker": 8,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "11:00 AM CEST - 11:30 AM CEST",
+ "session": "Embracing uncertainties: My Journey as an Open Source Contributor",
+ "speaker": 3,
+ "type": "Community Talk"
+ },
+ {
+ "time": "11:30 AM CEST - 12:00 PM CEST",
+ "session": "",
+ "type": "Break"
+ },
+ {
+ "time": "12:00 PM CEST - 12:30 PM CEST",
+ "session": "From Side-Project To Industry standard",
+ "speaker": 1,
+ "type": "Keynote Speaker"
+ },
+ {
+ "time": "12:30 PM CEST - 13:00 PM CEST",
+ "session": "Event-Driven API Management - Increase Reusability With AsyncAPI",
+ "speaker": 7,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "13:00 PM CEST - 13:30 PM CEST",
+ "session": "Practical Event-Storming with AsyncAPI v3 and ZenWave SDK",
+ "speaker": [5,4],
+ "type": "Technical Talk"
+ },
+ {
+ "time": "13:30 PM CEST - 3:30 PM CEST",
+ "session": "",
+ "type": "Catering and Lunch"
+ },
+ {
+ "time": "15:30 PM CEST - 4:00 PM CEST",
+ "session": "Leveraging AsyncAPI To Detect Anomalies In Smart Ports Platforms Using Model-Driven Techniques",
+ "speaker": 2,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "4:00 PM CEST - 4:30 PM CEST",
+ "session": "Kloadgen: An Empty Kafka is a Sad Kafka",
+ "speaker": 9,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "4:30 PM CEST - 5:00 PM CEST",
+ "session": "The Power of Ecosystem Thinking in Cultivating the AsyncAPI Documentation Community",
+ "speaker": 12,
+ "type": "Community Talk"
+ },
+ {
+ "time": "5:00 PM CEST - 5:30 PM CEST",
+ "session": "",
+ "type": "Break"
+ },
+ {
+ "time": "6:00 PM CEST - 6:30 PM CEST",
+ "session": "Case Study Productizing AsyncAPI for Data Replication, Changed Data Capture",
+ "speaker": 6,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "6:30 PM CEST - 7:00 PM CEST",
+ "session": "Code Generation For Enterprise Integration Patterns With AsyncAPI and ZenWave SDK",
+ "speaker": 4,
+ "type": "Technical Talk"
+ }
+
+
+ ],
+ "lists": [
+ {
+ "name": "Fran Méndez",
+ "title": "Founder of the AsyncAPI Initiative",
+ "img": "https://sessionize.com/image/2956-200o200o2-Mb9nauAS5oiS9MGnoRSeJW.jpg"
+ },
+ {
+ "name": "Abel Gómez",
+ "title": "Internet Interdisciplinary Institute (IN3). Universitat Oberta de Catalunya (UOC)",
+ "img": "https://sessionize.com/image/89de-200o200o2-NKt48A5ot62pByRM69iPw7.jpg"
+ },
+ {
+ "name": "Cynthia Peter",
+ "title": "Technical Writer",
+ "img": "https://sessionize.com/image/d32d-200o200o2-JCmP3viPs7gfVoh3VfT5vV.jpg"
+ },
+ {
+ "name": "Ivan Garcia Sainz-Aja",
+ "title": "Sr Software Engineer at Sngular",
+ "img": "https://sessionize.com/image/227b-200o200o2-s17N2LWbP5drYrKrhfoK7t.jpg"
+ },
+ {
+ "name": "Iván del Viejo",
+ "title": "Sngular, Business Analyst",
+ "img": "https://cache.sessionize.com/image/2d8b-200o200o2-44e72516-1cda-4fe8-ba56-21792dc5ee39.jpg"
+ },
+ {
+ "name": "Jeff Pollock",
+ "title": "Vice President of Products at Oracle",
+ "img": "https://sessionize.com/image/fe4c-200o200o2-R8RctGhHK1d3QgpvzzWJux.jpg"
+ },
+ {
+ "name": "Benjamin Gottstein",
+ "title": "Technical Engineer at Solace",
+ "img": "https://sessionize.com/image/9095-200o200o2-HX6YjFmHcvSd9t41BuHRU6.png"
+ },
+ {
+ "name": "Sergio Moya",
+ "title": "Lead Software Engineer at Postman (AsyncAPI Initiative)",
+ "img": "https://sessionize.com/image/f266-200o200o2-7QKomvHJUVvFHCqA98iVYv.jpg"
+ },
+ {
+ "name": "Jose E. García",
+ "title": "Principal Software Engineer at Corunet by Sngular",
+ "img": "https://sessionize.com/image/8a0e-200o200o2-X9CBBifXtTYT6v2cTbp2Ue.png"
+ },
+ {
+ "name": "Lukasz Gornicki",
+ "title": "Executive Director at AsyncAPI Initiative and Developer Relations Manager at Postman",
+ "img": "https://pbs.twimg.com/profile_images/1683523954957328393/W009Rxsj_400x400.jpg"
+ },
+ {
+ "name": "Benjamín Granados",
+ "title": "Experts Panel Moderator",
+ "img": "https://user-images.githubusercontent.com/66913810/268240922-66bfeb96-7d2d-4ece-aae2-c92454f3affc.png"
+ },
+ {
+ "name": "Alejandra Quetzalli",
+ "title": "Author & Lead Documentation Engineer",
+ "img": "https://cache.sessionize.com/image/6025-200o200o2-DqDUFbrp2qMozbpyx1T5rZ.JPG"
+ }
+ ]
+ },
+ {
+ "location": "London, United Kingdom",
+ "year":"2023",
+ "city": "London",
+ "agenda": [
+ {
+ "time": "9:00 AM BST - 10:00 AM BST",
+ "type": "Registration + Breakfast"
+ },
+ {
+ "time": "10:00 AM BST - 10:30 AM BST",
+ "session": "Everything You Wish To Know About The AsyncAPI Community",
+ "speaker": 10,
+ "type": "Keynote Speaker"
+ },
+ {
+ "time": "10:30 AM BST - 11:00 AM BST",
+ "session": "Open Standards For Building Event-Driven Applications In The Cloud",
+ "speaker": 5,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "11:00 AM BST - 11:30 AM BST",
+ "session": "AsyncAPI Standards And Governance",
+ "speaker": 6,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "11:30 AM BST - 12:00 PM BST",
+ "session": "Event & Unified API Management - Self-Service Access To Events Using AsyncAPI",
+ "speaker": 8,
+ "type": "Keynote Speaker"
+ },
+ {
+ "time": "12:00 PM BST - 12:30 PM BST",
+ "session": "Full-Stack AsyncAPI",
+ "speaker": 4,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "12:30 PM BST - 1:30 PM BST",
+ "session": "",
+ "type": "Break"
+ },
+ {
+ "time": "1:30 PM BST - 2:00 PM BST",
+ "session": "AsyncAPI and The Battles It Must Win",
+ "speaker": 9,
+ "type": "Keynote Speaker"
+ },
+ {
+ "time": "2:00 PM BST - 2:30 PM BST",
+ "session": "API Management For An Asynchronous World",
+ "speaker": 1,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "2:30 PM BST - 3:00 PM BST",
+ "session": "AsyncAPI v3: Unleashing the Power of Asynchronous APIs Design",
+ "speaker": 3,
+ "type": "Keynote Speaker"
+ },
+ {
+ "time": "3:00 PM BST - 3:20 PM BST",
+ "session": "",
+ "type": "Break"
+ },
+ {
+ "time": "3:20 PM BST - 3:50 PM BST",
+ "session": "Navigating AsyncAPI Design with APIOps Cycles: A Practical Approach to Collaborative Planning",
+ "speaker": 2,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "3:50 PM BST - 4:25 PM BST",
+ "session": "AsyncAPI and Modelina: Enforce Contracts And Reduce Boilerplate",
+ "speaker": 7,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "4:25 PM BST - 5:10 PM BST",
+ "session": "Bridging the Gap between Design and Runtime in EDA with AsyncAPI and CI/CD",
+ "speaker": 11,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "5:10 PM BST - 5:15 PM BST",
+ "session": "Inside-out or Outside-in",
+ "speaker": 1,
+ "type": "Keynote Speaker"
+ }
+
+
+ ],
+ "lists": [
+
+ {
+ "name": "Dale Lane",
+ "title": "Chief Architect and Senior Technical Staff Member at IBM Event Automation",
+ "img": "https://user-images.githubusercontent.com/66913810/261602797-91ddd137-f71b-4486-84bf-de98ac58e839.png"
+
+ },
+
+ {
+ "name": "Marjukka Niinioja",
+ "title": "Business & Technical Consultant and Co-author of API Economy 101",
+ "img": "https://user-images.githubusercontent.com/66913810/261286046-4985401c-f5b8-44e0-ae0a-f4d35b3aca25.jpg"
+
+ },
+ {
+ "name": "Sergio Moya",
+ "title": "Lead Software Engineer at Postman (AsyncAPI Initiative)",
+ "img": "https://user-images.githubusercontent.com/66913810/261602484-9eb2aada-1209-4e62-a470-a8788b7430d1.png"
+ },
+
+ {
+ "name": "Adrian Runte",
+ "title": "Multi-time Founder, CTO and CIO",
+ "img": "https://user-images.githubusercontent.com/66913810/261285775-b3069bdc-2889-4a3a-82d1-52806a454962.jpg"
+
+ },
+
+ {
+ "name": "Mete Atamel",
+ "title": "Software Engineer and Developer Advocate",
+ "img": "https://atamel.dev/img/mete-512.jpg"
+ },
+
+ {
+ "name": "Lorna Mitchell",
+ "title": "Developer Experience at Redocly",
+ "img": "https://lornajane.net/wp-content/uploads/2011/08/IMG_9410-smaller.jpg"
+ },
+
+ {
+ "name": "Artur Ciocanu",
+ "title": "Senior Computer Scientist at Adobe",
+ "img": "https://user-images.githubusercontent.com/66913810/262294782-32d6cf14-3e7b-4b68-b8a6-82de97166c7d.jpg"
+
+ },
+
+ {
+ "name": "Swen-Helge Huber",
+ "title": "Senior Director, Office of the CTO at Solace",
+ "img": "https://user-images.githubusercontent.com/66913810/262295277-4cab51aa-e336-4f13-9e63-6eea20ad411a.png"
+ },
+
+ {
+ "name": "Gary Olliffe",
+ "title": "Distinguished VP Analyst at Gartner",
+ "img": "https://user-images.githubusercontent.com/66913810/263706242-3570211b-77d1-4692-8721-9945c718258a.jpg"
+ },
+
+ {
+ "name": "Lukasz Gornicki",
+ "title": "Executive Director at AsyncAPI Initiative and Developer Relations Manager at Postman",
+ "img": "https://pbs.twimg.com/profile_images/1683523954957328393/W009Rxsj_400x400.jpg"
+ },
+ {
+ "name": "Hari Rangarajan",
+ "title": "Developer Advocate at Solace",
+ "img": "https://user-images.githubusercontent.com/66913810/264054920-0bafd0b1-ee83-416f-b64e-3ff10f7582ba.jpg"
+
+ }
+
+ ]
+ },
+ {
+ "city": "Bangalore",
+ "year":"2023",
+ "location": "Bangalore, India",
+ "lists": [
+ {
+ "name": "Thulisile Sibanda",
+ "title": "Community Manager at AsyncAPI",
+ "img": "https://user-images.githubusercontent.com/66913810/279888229-4837d059-8487-4f15-b0fc-9bd1c6d12cce.png"
+
+ },
+
+ {
+ "name": "Vaishnavi Nandakumar",
+ "title": "Software Engineer at Visa Inc.",
+ "img": "https://user-images.githubusercontent.com/66913810/279636539-18015e34-030a-471b-b8fd-62f6c13e8a1e.jpg"
+
+ },
+ {
+ "name": "Hari Krishnan",
+ "title": "Co-founder, CTO at Specmatic",
+ "img": "https://user-images.githubusercontent.com/66913810/279641638-9356e03b-328a-49a5-825b-796723b44f61.jpg"
+
+ },
+ {
+ "name": "Hridyesh Bisht",
+ "title": "Technical Knowledge Specialist at Outsystems",
+ "img": "https://user-images.githubusercontent.com/66913810/279334951-ad70d039-5f7c-456e-8470-17f68d4d588b.jpg"
+
+ },
+ {
+ "name": "Giri Venkatesan",
+ "title": "Developer Advocate and Architect at Solace",
+ "img": "https://user-images.githubusercontent.com/66913810/279638251-b8a8304b-7f17-42e4-81b5-21183bf16cc7.jpg"
+
+ },
+ {
+ "name": "Ruchi Pakhle",
+ "title": "Associate Software Engineer at Red Hat",
+ "img": "https://user-images.githubusercontent.com/66913810/279596979-841baeee-6e5e-4585-b490-32f921a40fd6.jpg"
+
+ },
+ {
+ "name": "Ankit Kumar",
+ "title": "Core Engineer at Aklivity",
+ "img": "https://user-images.githubusercontent.com/66913810/279335230-e86c6cac-4373-46f6-b4fb-778dfcb9ac32.png"
+
+ },
+ {
+ "name": "Veeratteshwaran Sridhar",
+ "title": "Senior Principal Product Manager at Oracle ",
+ "img": "https://user-images.githubusercontent.com/66913810/281380527-e7724f35-e060-433d-b83a-bad3ffec9985.jpg"
+
+ },
+ {
+ "name": "Laurent Broudoux",
+ "title": "Director of Engineering at Postman and Co-founder of Microcks",
+ "img": "https://user-images.githubusercontent.com/66913810/279639901-07c64c42-deee-4520-b36f-92a8141b9dcb.jpg"
+
+ },
+ {
+ "name": "Kaushik Rishi Manchukonda",
+ "title": "Software Engineer at Salesforce",
+ "img": "https://user-images.githubusercontent.com/66913810/279334818-2ac16d77-a410-4c87-9786-a7862015fb77.png"
+
+ },
+ {
+ "name": "Pooja Thakrani",
+ "title": "Senior Platform Engineer at Postman",
+ "img": "https://user-images.githubusercontent.com/66913810/279640678-6ef459b4-89c1-48e8-9f4f-505d5cd54d98.jpg"
+
+ },
+ {
+ "name": "Abhishek Sivakumar",
+ "title": "Software Engineer II at Postman",
+ "img": "https://user-images.githubusercontent.com/66913810/281025435-d4be0bf7-e58b-4761-b4ca-5d0f2e66ef39.jpg"
+
+ }
+
+ ],
+ "agenda": [
+ {
+ "time": "8:30 AM IST - 9:30 AM IST",
+ "type": "Registration + Breakfast"
+ },
+ {
+ "time": "9:30 AM IST - 10:00 AM IST",
+ "type": "Welcome Speech"
+ },
+ {
+ "time": "10:00 AM IST - 10:30 AM IST",
+ "session": "Everything You Wish To Know About The AsyncAPI Community",
+ "speaker": 1,
+ "type": "Community Talk"
+ },
+ {
+ "time": "10:30 AM IST - 11:00 AM IST",
+ "session": "Kafka and JMS Mocking with AsyncAPI using Specmatic",
+ "speaker": 3,
+ "type": "Keynote Speaker"
+ },
+ {
+ "time": "11:00 AM IST - 11:30 PM IST",
+ "session": "Effortlessly Generating Docs with AsyncAPI",
+ "speaker": 4,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "11:30 AM IST - 12:00 AM IST",
+ "session": "Request-Reply Messaging Patterns: Real-World Use Cases with AsyncAPI 3.0",
+ "speaker": 2,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "12:00 PM IST - 12:30 PM IST",
+ "session": "Bridging the Gap between Design and Runtime in EDA with AsyncAPI and CI/CD",
+ "speaker": 5,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "12:30 PM IST - 1:30 PM IST",
+ "session": "",
+ "type": "Lunch"
+ },
+ {
+ "time": "1:30 PM IST - 2:00 PM IST",
+ "session": "Apache Kafka + MQTT = A Powerpack combination for end-to-end testing",
+ "speaker": 6,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "2:00 PM IST - 2:30 PM IST",
+ "session": "Dynamic API Delivery with Zilla: Unleashing the Power of AsyncAPI in Event-Driven Architectures",
+ "speaker": 7,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "2:30 PM IST - 3:00 PM IST",
+ "session": "Case Study Productizing AsyncAPI for Data Replication, Changed Data Capture",
+ "speaker": 8,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "3:00 PM IST - 3:30 PM IST",
+ "session": "",
+ "type": "Break"
+ },
+ {
+ "time": "3:30 PM IST - 4:00 PM IST",
+ "session": "Elevating Event-Driven Architecture: Boost your delivery with AsyncAPI and Microcks",
+ "speaker": 9,
+ "type": "Keynote Speaker"
+ },
+ {
+ "time": "4:00 PM IST - 4:30 PM IST",
+ "session": "Writing Sustainable AsyncAPI Generator Templates",
+ "speaker": 10,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "4:30 PM IST - 5:00 PM IST",
+ "session": "Turbocharging your Developer Ecosystem with Events Powered by SNS/SQS, Serverless, and AsyncAPI",
+ "speaker": [11,12],
+ "type": "Technical Talk"
+ },
+ {
+ "time": "5:00 PM IST - 5:15 PM IST",
+ "session": "",
+ "type": "Closing Remarks"
+ }
+ ]
+ },
+ {
+ "city": "Paris",
+ "year":"2023",
+ "location": "Paris, France",
+ "lists": [
+ {
+ "name": "Lukasz Gornicki",
+ "title": "Executive Director at AsyncAPI Initiative and Developer Relations Manager at Postman",
+ "img": "https://apidays.s3.fr-par.scw.cloud/medias/2458/conversions/82981197-45c9-48ad-8bf8-b7c9d2ba55ce-square.jpg"
+ },
+ {
+ "name": "Hari Rangarajan",
+ "title": "Developer Advocate at Solace",
+ "img": "https://user-images.githubusercontent.com/66913810/264054920-0bafd0b1-ee83-416f-b64e-3ff10f7582ba.jpg"
+ },
+ {
+ "name": "David Brassely",
+ "title": "Chief Technology Officer at Gravitee",
+ "img": "https://apidays.s3.fr-par.scw.cloud/medias/708/conversions/927ceb62-ebea-4b6f-b9de-f53b0a113457-square.jpg"
+ },
+ {
+ "name": "João Dias",
+ "title": "Software Engineer at Kuehne+Nagel",
+ "img": "https://apidays.s3.fr-par.scw.cloud/medias/2461/conversions/6a8ec984-ebc7-444d-9257-4860bed7e1cb-square.jpg"
+ },
+ {
+ "name": "Rui Eusébio",
+ "title": "Senior Software Architect at Kuehne+Nagel",
+ "img": "https://apidays.s3.fr-par.scw.cloud/medias/2462/conversions/aa606e8b-09cd-406c-b89a-2818850ebd60-square.jpg"
+ },
+ {
+ "name": "Manuel Ottlik",
+ "title": "Product Owner Global Integration Platform at HDI Global SE",
+ "img": "https://apidays.s3.fr-par.scw.cloud/medias/2011/conversions/c4c081c7-8f14-4680-b7dc-dc55559c09f7-square.jpg"
+ },
+ {
+ "name": "Zbigniew Malcherczyk",
+ "title": "Senior Backend Engineer at TransferGo",
+ "img": "https://apidays.s3.fr-par.scw.cloud/medias/2442/conversions/4ea7dbeb-9cae-4657-9292-a8f25725fa50-square.jpg"
+ },
+ {
+ "name": "Hugo Guerrero",
+ "title": "Chief Software Architect, APIs & Integration Developer Advocate at Red Hat",
+ "img": "https://apidays.s3.fr-par.scw.cloud/medias/648/conversions/0d366eb0-5a31-47d9-b3e5-33f406f31055-square.jpg"
+ },
+ {
+ "name": "Julien Testut",
+ "title": "Senior Principal Product Manager at Oracle",
+ "img": "https://apidays.s3.fr-par.scw.cloud/medias/2452/conversions/c2015d0d-56fa-4058-ba9e-73916f9a78f8-square.jpg"
+ },
+ {
+ "name": "José Haro Peralta",
+ "title": "Founder, Author, Instructor at microapis.io",
+ "img": "https://apidays.s3.fr-par.scw.cloud/medias/2134/conversions/825ceeae-7b98-4855-92aa-6e77dacb6d8e-square.jpg"
+ },
+ {
+ "name": "Julien Jakubowski",
+ "title": "Developer Advocate at StreamNative",
+ "img": "https://apidays.s3.fr-par.scw.cloud/medias/2456/conversions/66ed3685-0341-4103-b7cf-d4bbc6ddf590-square.jpg"
+ },
+ {
+ "name": "Benjamin Coenen",
+ "title": "Rust Sr Staff Software Engineer at Apollo GraphQL",
+ "img": "https://apidays.s3.fr-par.scw.cloud/medias/2463/conversions/7749cce5-2699-47b9-aef8-6269ab8a823d-square.jpg"
+ },
+ {
+ "name": "Alexander Günsche",
+ "title": "Senior Solutions Architect at Amazon Web Services",
+ "img": "https://apidays.s3.fr-par.scw.cloud/medias/2382/conversions/c5612dad-fb54-46e9-8472-d6f579c43b5e-square.jpg"
+ }
+
+ ],
+ "agenda": [
+ {
+ "time": "8:30 AM CEST - 9:00 AM CEST",
+ "type": "Registration"
+ },
+ {
+ "time": "9:05 AM CEST - 9:30 AM CEST",
+ "session": "Everything You Wish To Know About The AsyncAPI Community",
+ "speaker": 1,
+ "type": "Community Talk"
+ },
+ {
+ "time": "9:30 AM CEST - 9:55 AM CEST",
+ "session": "Event-driven Architecture and REST-APIs: It’s not a competition",
+ "speaker": 6,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "9:55 AM CEST - 10:20 PM CEST",
+ "session": "Syncing Design & Runtime: EDA's Future with AsyncAPI & Agile CI/CD",
+ "speaker": 2,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "10:20 AM CEST - 10:50 AM CEST",
+ "session": "",
+ "type": "Break"
+ },
+ {
+ "time": "10:50 PM CEST - 11:15 AM CEST",
+ "session": "A Guide To The Event-Native World of Open Standards: AsyncAPI, CloudEvents, Shared Signals & Events",
+ "speaker": 3,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "11:15 AM CEST - 11:40 AM CEST",
+ "session": "How TransferGo Uses AsyncAPI To Improve Developer Experience",
+ "speaker": 7,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "11:40 AM CEST - 12:30 PM CEST",
+ "session": "AsyncAPI For Platform Self-Service: A GitOps Tale",
+ "speaker": [4,5],
+ "type": "Technical Talk"
+ },
+ {
+ "time": "12:30 PM CEST - 1:40 PM CEST",
+ "session": "",
+ "type": "Lunch"
+ },
+ {
+ "time": "1:40 PM CEST - 2:05 PM CEST",
+ "session": "Elevating Event-Driven World: A Deep Dive into AsyncAPI v3",
+ "speaker": 1,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "2:05 PM CEST - 2:30 PM CEST",
+ "session": "Boosting Event-Driven Development with AsyncAPI and Microcks",
+ "speaker": 8,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "2:30 PM CEST - 2:55 PM CEST",
+ "session": "Productizing AsyncAPI for Data Replication and Changed Data Capture",
+ "speaker": 9,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "2:55 PM CEST - 3:20 PM CEST",
+ "session": "Leverage API Observability: Improving Governance, Security and Operations",
+ "speaker": 10,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "3:20 PM CEST - 3:50 PM CEST",
+ "session": "",
+ "type": "Break"
+ },
+ {
+ "time": "3:50 PM CEST - 4:15 PM CEST",
+ "session": "Apache Pulsar: Finally an Alternative to Kafka?",
+ "speaker": 11,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "4:15 PM CEST - 4:40 PM CEST",
+ "session": "Federated GraphQL Subscriptions For Real-Time Applications",
+ "speaker": 12,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "4:40 PM CEST - 5:05 PM CEST",
+ "session": "Interface Contracts in Event-Driven Micro-Frontend Architectures",
+ "speaker": 13,
+ "type": "Technical Talk"
+ },
+ {
+ "time": "5:05 PM CEST - 5:15 PM CEST",
+ "session": "",
+ "type": "Closing Remarks"
+ }
+ ]
}
]
diff --git a/pages/editions/[year].js b/pages/editions/[year].js
index d40400b0..78155fb2 100644
--- a/pages/editions/[year].js
+++ b/pages/editions/[year].js
@@ -8,18 +8,17 @@ import speakers from '../../config/speakers.json';
import Venue from '../../components/Venue/venue';
import Head from 'next/head';
import About from '../../components/About/about';
+import { CommonUtils } from '../../utils/common-utils';
+
-const extractYear = (dateString) => {
- return dateString.split(' ').pop();
-}
export async function getStaticProps({ params }) {
let res = [];
let yearEvents = [];
- const data = cities.filter((p) => extractYear(p.date) === params.year);
+ const data = cities.filter((p) => CommonUtils.extractYear(p.date) === params.year);
yearEvents = data;
for (let i = 0; i < yearEvents.length; i++) {
let yearIter = yearEvents[i];
- const getSpeakers = speakers.filter((s) => s.city === yearIter?.name);
+ const getSpeakers = speakers.filter((s) => s.city === yearIter?.name && s.year===CommonUtils.extractYear(yearIter.date));
yearIter.speakers = getSpeakers[0].lists;
res.push(yearIter);
}
@@ -33,7 +32,7 @@ export async function getStaticProps({ params }) {
export async function getStaticPaths() {
const paths = cities.map((city) => ({
- params: { year: extractYear(city.date) },
+ params: { year: CommonUtils.extractYear(city.date) },
}));
return {
paths,
@@ -82,7 +81,7 @@ const Edition = (props) => {
Speakers
-
Meet the speakers
+
Meet the speakers
diff --git a/pages/index.js b/pages/index.js
index be4cdc2a..285372f3 100644
--- a/pages/index.js
+++ b/pages/index.js
@@ -10,6 +10,7 @@ import About from '../components/About/about';
import TicketCards from '../components/Cards/ticketCards';
import Heading from '../components/Typography/heading';
import Paragraph from '../components/Typography/paragraph';
+import { CommonUtils } from '../utils/common-utils';
export default function Home() {
return (
@@ -39,7 +40,7 @@ export default function Home() {
- {cities.map((city) => )}
+ {cities.filter(item=>CommonUtils.extractYear(item.date)===CommonUtils.getCurrentYearFull()).map((city) => )}
diff --git a/utils/common-utils.js b/utils/common-utils.js
index 9fc3fbea..32ae8288 100644
--- a/utils/common-utils.js
+++ b/utils/common-utils.js
@@ -1,5 +1,11 @@
-export const CommonUtils={
- getCurrentYear:()=>{
- return new Date().getFullYear().toString().substring(2)
- }
+export const CommonUtils = {
+ getCurrentYear2Digit: () => {
+ return CommonUtils.getCurrentYearFull().substring(2)
+ },
+ extractYear: (dateString) => {
+ return dateString.split(' ').pop();
+ },
+ getCurrentYearFull: () => {
+ return new Date().getFullYear().toString()
+ },
}
\ No newline at end of file