Closed HugoGresse closed 4 months ago
I might implement an openplanner crawler which : 1/ fetch your generated JSON file with schedule in it 2/ fetch another JSON, which is going to enrich this data with organizer information needed for the mobile app (like, feature flags or editorial part like sponsors, floor plans, venue etc.)
Happy to answer any question / provide any help if needed :-)
Sponsors can also be managed in OpenPlanner (and team & FAQ), not the venue info though we could have everything next year? When the crawler is ready, how can we setup a new event in Voxxrin?
How do you want to proceed between our 2 projects ?
I am planning to start working on the crawler during the week of Apr 22nd Do you think you could generate a JSON somewhere with as much info you have in hand as possible : schedule, talk details, speaker infos, event info (like sponsors, team etc.)
=> It would be a good starting point for me and the future crawler (I will look into this JSON to gather all the information I need to build Voxxrin data)
Once the crawler will be implemented, I will be able to tell you which parts of the JSON are useful (or not) for me if you want to reduce its size and keep only relevant info in it.
Sounds good to you ?
When the crawler is ready, how can we setup a new event in Voxxrin ? Registering a new event (backed by a given crawler impl, such as the future openplanner one) is performed only at the Voxxrin Administration level (currently, I manually manage the list of registered events in Voxxrin)
Initial work has been done, see here https://github.com/HugoGresse/OpenPlanner/pull/93/files#diff-6b9b5f975862fc956488794897a874635ddc329b018d5b2a8273e0500b9dc8cbR22
it need some UI to cover some required fields:
const supportedTalkLanguages = [{ id: 'fr', themeColor: '#000000', label: 'Français' }]
const eventFamily = ''
const eventTimezone = 'Europe/Paris'
const logoUrl = ''
const backgroundUrl = ''
and the new file URL to be displayed in the UI also.
Let me know if I'm missing something.
Regarding the crawler, the Voxxrin documention did not contain anything related to talks & speakers formats.
@fcamblor let me know what you think of this, so I can finish up the PR.
@HugoGresse Would you be able to share a produced JSON example file so that I can test ingesting it and share some feedback about potential missing information ?
Regarding schedule (talks & speakers), you can export the structure of your choice, I will transform it into mine anyway.
But in case you want to have an example of my internal representation, I can give you example talk+speaker data structure below (I build my schedule based on an array of this talk representation) :
{
"id": "74351",
"title": "Bienvenue à Devoxx France 2024",
"language": "fr",
"speakers": [
{
"id": "1601",
"fullName": "Nicolas Martignole (Devoxx FR)",
"photoUrl": "https://devoxxian-image-thumbnails.s3-eu-west-1.amazonaws.com/profile-290620d6-ee84-4561-b85e-ed2ad1538936.jpg",
"companyName": "Devoxx France",
"bio": "Créateur et organisateur de Devoxx France la nuit et Principal Engineer chez Back Market le jour. <br>Anciennement Principal Engineer chez Doctolib, Directeur Général de Lunatech France, CTO de Captaindash, et freelance de nombreuses années dans le milieu des startups, la finance, et le web. Je suis (re)devenu contributeur individuel (IC) en 2021, j'aide aussi la communauté des Staff Engineers en participant à l'animation du groupe Staff42 en France. <br>Je fais un peu de tout, un peu près bien. ",
"social": [
{ "type": "twitter", "url": "https://twitter.com/@nmartignole" }
]
},
{
"id": "2714",
"fullName": "Zouheir CADI",
"photoUrl": "https://devoxxian-image-thumbnails.s3-eu-west-1.amazonaws.com/profile-4c3d0b02-2b4d-4e34-94d6-6da61a1d6edb.png",
"companyName": "Indépendant",
"bio": "Zouheir CADI est consultant spécialisé dans les technologies java/jee. Après plusieurs années dans le développement, il est architecte suivi de production, un métier passionnant, interface entre le développement et les problématiques opérationnelles. Il est également intervenant à Telecom ParisTech où il enseigne les technologies java.<br>Zouheir CADI est co-fondateur de Devoxx France.",
"social": []
},
{
"id": "28605",
"fullName": "Antonio Goncalves",
"photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiQrJTBPQBKKOL4VVd6hPUmxSF6blMD3RGK0T5a9g=s96-c",
"companyName": "Microsoft",
"bio": "Antonio Goncalves is a senior developer living in Paris. He evolved in the Java EE landscape for a while and then moved on to Spring, Micronaut and Quarkus. From distributed systems to microservices and functions, today he works at Microsoft helping his customers to develop the Cloud architecture that suits them the best.<br>Aside from working on Azure, Antonio wrote a few books (Java EE and Quarkus), talks at international conferences (Devoxx, JavaOne, GeeCon…), writes technical papers and articles, gives on-line courses (PluralSight, Udemy) and co-presents the Technical French pod cast Les Cast Codeurs. He has co-created the Paris JUG, Voxxed Microservices and Devoxx France. For all his work for the community he has been made Java Champion a few years ago.",
"social": [
{ "type": "twitter", "url": "https://twitter.com/@agoncal" }
]
}
],
"format": {
"id": "955",
"title": "Keynote",
"duration": "PT25m"
},
"track": {
"id": "1253",
"title": "People & Culture"
},
"room": {
"id": "1709",
"title": "Amphi bleu"
},
"isOverflow": false,
"start": "2024-04-17T07:00:00Z",
"end": "2024-04-17T07:25:00Z",
"description": "Démarrez les 3 jours avec un petit mot de bienvenue de la part des 3 organisateurs et créateurs de la conférence. L'ajout d'un deuxième niveau, le changement d'organisation du mercredi, le nombre de présentations, vous aurez l'occasion de découvrir les nouveautés de 2024. <br>Rendez-vous dès 9h pour lancer la nouvelle édition de Devoxx France. ",
"tags": [
"Audience:Beginner"
]
}
@fcamblor Here is a sample of the current Voxxrin output: https://storage.googleapis.com/conferencecenterr.appspot.com/events/ML7vHjW9pdzqLgYqaYYf/4e970893-ee05-4b7e-adda-3f99b9e30d41-voxxrin.json
@HugoGresse FYI, this is taking shape ... I was able to generate a first planning on demo environment (there are some random / hardcoded values due to my latest comments on your PR)
I'll try to deploy something in the demo environment tomorrow so that you can see this.
Time to sleep for now 😴
@HugoGresse let me know if you have any question regarding my comments on #93, I may have some spare time on upcoming 2 weeks if needed.
Sorry for the delay, I think I've fixed most of the issues, the JSON can checked here: https://storage.googleapis.com/conferencecenterr.appspot.com/events/ML7vHjW9pdzqLgYqaYYf/4e970893-ee05-4b7e-adda-3f99b9e30d41-voxxrin.json?t=2112 (minding the cache busting at the end)
If that's good for you, we can merge the PR and I'll keep the issue open if there is any small fixes to be done.
As mentioned in #93, LGTM 🎉 Thanks for this work, I'm sure this is going to be a good synergy for both our projects :-)
FYI, Voxxrin crawler is first targetting sunnytech.json configuration file which, in turn, targets openplanner's generated file
The idea of first configuration file is to be able to provide some configs openplanner would not be able to provide (particularly in the case of new features appearing in voxxrin and not instantly implemented into openplanner)
cc Tech&Wine team who might be interested into this integration (@davidaparicio @mderoullers)
Great! Merging tomorrow!
Where you able to add SunnyTech in Voxxrin in production?
Hello Hugo :-)
I didn't thought you were expecting to see it in prod (I didn't contact the team for this given the short delay and the fact that their schedule is mobile-friendly already today)
I added it just now :-)
Kind regards,
Nice! Almost perfect, I think the only issue is the track assigned to the "Pause" and other session which are not sessions... If I remove the trackId will that be enough? I may be able to use the checkbox "Show in feedback" which remove the session from OpenFeedback, which has the same meaning.
Almost perfect, I think the only issue is the track assigned to the "Pause" and other session which are not sessions... If I remove the trackId will that be enough? I may be able to use the checkbox "Show in feedback" which remove the session from OpenFeedback, which has the same meaning.
I'm not sure to understand your point : what are your expectations about room (/track) for breaks ?
By looking at the JSON file, for instance, I can see that first break of the day is in the Lavande
room (/track)
Isn't it correct ?
You also mentioned "sessions which are not sessions": do you have an example of such sessions entries ?
I'll change it soon to remove the trackid and trackTitle in this case (I'll probably reuse "Don't show in feedback" toggle from session for this case). It will also allow me to verify that everything else is working and I'll be able to close this issue next.
Sessions which are not sessions is like Break, Lunch, etc.
Not sure if removing location from breaks/lunch will be OK with voxxrin (I can tell you later)
Instead of removing track*
fields, wouldn't it be more logic to provide a place for lunch/breaks (like, a hall or something) ?
Nevermind, I did not had the time before the event. I'm closing this for now. Thank you!
Voxxrin propose a mobile app compatible with any conferences out of the box, needing only a json as input.
The idea will be to add a new export format as it was made for OpenFeedback static json in OpenPlanner, below those options.
The .json fill be generated along other, when "Update website" is pressed.
The schema is defined here: https://github.com/voxxrin/voxxrin3/wiki/Event-Descriptor-Data-Model-explained
It will probably be a good idea to also add a checkbox to enable it rather than always generating the JSON file.