diff --git a/components/About/about.js b/components/About/about.js index 2c7452fb..c01d527e 100644 --- a/components/About/about.js +++ b/components/About/about.js @@ -5,7 +5,7 @@ import Paragraph from "../Typography/paragraph"; import Button from "../Buttons/button"; import { CommonUtils } from "../../utils/common-utils"; -function About({ year = CommonUtils.getCurrentYear(), isEnded = false }) { +function About({ year = CommonUtils.getCurrentYear2Digit(), isEnded = false }) { return (
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