Spectrum is now read-only. Learn more about the decision in our official announcement.


Romania's First JavaScript User Group


Inis Files

June 3, 2019 at 12:32am (Edited 3 years ago)
Hey guys,
As promised, I'm linking the inis files. I've noted my thoughts on the current status and where I planned to take it. Any of this can change, depending on what the team decides further. Would love to have a chat/beer these days to go over the game plan [you're buying :) ].
=== === === Baseline intro
-- It's written in vanilla CSS/JS, with no tooling/frameworks/dependencies. -- It can be adapted into a specific framework/library of choice (most obvious would be React). -- I've separated the app into files, for ease of access and usage. Also eliminated all clutter related to anything that is not currently implemented. -- Footnote: I'm a junior with no prior 'professional experience', so pls be gentle and no kinky stuff until the third date.
=== -- I'm well aware that little if any of the code will actually be used moving forward, but it is a good starting point to generate ideas. -- Before going on to a 'national level' my approach would be to create a good product for iasi, which could be adapted for future cities.
=== === === What would be required:
=== [1] Rebranding / redesign (obviously)
=== [2] The app will most likely be adapted to React (as not many devs tend to like vanilla JS as much as I do). But it might as well be anything else, as the team desires.
=== [3] Setup a grunt/gulp/whatever to [merge files] and [optimize images].
Initially I've kept all of the code directly in the html file, as extensive testing before [deploying a new feature / adding new events] was limited, and this helped push updates/fixes fast. Normally, I would resize/compress the images manually, with an online tool, but it this were to grow, it would not be a feasible option.
=== [4] Database and serve-side processing
Currently, the full [inis_data] object (containing all events) is used to process and generate the events (even though it only generates the ones that have not passed). This could be improved by filtering server-side. Yet, if an event history should be implemented for each entity (separated in tab-like menu [Upcoming | Past]), this might be less required.
=== [5] Crawler
No doubt this idea came to mind when first hearing about such a project. I've received this recommendation many times over.
-- The main problem here is the fact that not all events are posted on facebook (some are on meetup, on websites or even simply within a post + link to gdocs).
-- The second one is the fact that not all Events are created equal -- Not all have the [location] specified in the event parameters, not all descriptions are concise enough to fit the current format (which was well received), and so on.
-- The third is image optimization -- for the current format, a max size of 400px is required for any image. In most cases, by resizing and compression, I've reduced the images to 1/3 to 1/8 of their facebook/meetup file size.
This approach would require quite some thought and effort to pull off, but it's doable, at least to a certain degree.
=== [6] SEO -- can't stress this enough.
=== [7] Most-Required Features:
-- timeline -- separate the events by day/month -- filtering -- display/hide events by criteria -- entity modal -- on the Communities Page, clicking a box would show a modal with info (description, links) about said community + their events history -- event tags -- it's been a long battle with this idea, as it is quite difficult to arrow down what would be the most relevant
=== [8] Would be nice (a few of the most impactful, in my opinion) :
-- Internships Page -- Offers Page -- like the promotions to win tickets to DevExperience or NDR -- some more names for the 'Online Webinars' watchlist -- currently only, startarium and game dev radio. This will include conference livestreams and/or meetups livestreams.
=== [9] Code Caveats
-- grid system - I've been using floats for quite some time now, yet the app is very remotely reliant on them (only 2-3 places), with most dynamic spacing being generated through [flex]. We could easily move to the [flex grid system] like in [bootstrap 4] or even go with [Grid] directly.
-- spacing - almost the same as the bootstrap {propertyInitialLeter}-{sizeValue} ( .m-0 = margin: 0 || pb-xs = padding-bottom: value-of-xs )
-- anything else is vanilla and very straight forward, and should pose little impediment.
=== === ===
Let's have fun and make something great :)

June 3, 2019 at 12:39am
Would really love to grab a beer and share ideas, anytime you fancy, guys (if enough beer comes around, the last comma might be removed. just sayan..)

June 3, 2019 at 11:18am
Cheers! I'll take a look over this later this evening and share some thoughts.