The dev environment uses Vue cli for serving the app to a browser, however this will not do for production. As simple node or nginx server is needed to serve the app. A requirement could be that the app should be server side rendered, but it is not that important as most search engines are optimized to index SPA's nowadays.
As the title says. Requires some reconfiguration of the tailwind config file. Also no Sass or Less, Tailwind should have everything we require either by it's utilities or the classes it generates from it's configuration.
Had the suggestion where we could split the Alert stats by Meta brackets, as in when the 1 hour 30 minute limit started, when we had 1 hour alerts, etc.
This could be done by implementing date ranges, then having maybe buttons as predefined date ranges or allow the user to choose their own.
Reddit user suggested to implement Win Loss and Draw ratios on the profiles. Sounds like a good idea, but will have to check every single alert the player has been involved in.
Should be able to do that with a simple Join or Where In query, then checking the results of that alert, matching it against the faction of the player.
One topic I'm really struggling to find an answer for from Google is how to properly serve assets with a random / injected hash in order for browsers to cache correctly versioned CSS / JS. Right now it's just being loaded like:
/app.js
Which may not change between versions after it's first loaded as browsers cache that path.
Ideally, it needs to be with a random sha / hash on it, so it turns into this:
/app-aeeh24.js
This will then mean all assets are fresh and correct. Ideal situation would be to inject the build SHA which is already available to Vue enviroment via injection from GitHub actions.
We require a box design / mockup for the PS2Alerts homepage / alerts page / all alerts page. This is going to be used as a basis to build the website upon, and we'll have a session to discuss and ratify it into the rest of the design.
The current way we're injecting ENVs into the Gruntfile is suboptimal, it should be coming from the environment variables of the container. Currently they're just hardcoded into the file.
Generating maps using the vast amount of capture data to hand would be useful.
For example, on a per continent basis, I should be able to show heat map of all captures recorded. This would give a very nice indication of which bases are the most contested.
Filters:
Server
Continental
Faction wins (bit more tricky / intensive as we'll have to get all alerts first then filter by that)
Outfit captured (may expand to a separate outfit section)
Table, 3 bars one for each faction showing their summary of kills + base captures + vehicle destructions (maybe), with a line in the middle of these bars showing the 50% point, indicating if they're focusing another empire or not.
Double teaming summary
Then, show overall bar based on the above showing a summary of all kills made, which should give us if they were being double teamed.
Would be brilliant for the user to sign up to which notifications they want to receive when they have the site open (can save their settings to local storage) and show the HTML 5 notification shade when a new alert starts.
The current website is in Angular 1, which is very very old. I was also very new to creating SPAs and JavaScript in general back then, however the design of the website still continues to hold to today's standards, mostly.
I suggest we gut the innards of the site and start that part again, however attempting to keep the design and feel of the site relatively intact, maybe with a few UX considerations.
To discuss August 20th, please offer your suggestions here in the meantime.
Not real time sortable leaderboard (making the killboard real time is potentially quite a lot of work) - recommend use of DataTables for this
All this created out of purely static API calls, no real time data just yet as we've not set up the API websocket server to facilitate this. Real time monitor will do an AJAX call to get the latest updates every 10 seconds or so.
This will also not have proper styling, just pure information.
Once we have the ability to see currently running alerts, we need to start showing basic alert information. We need to show the following on a per-alert basis:
Victor
Victory conditions (territory %)
Faction combat metrics
Leaderboard for Players (outfits as a stretch goal)
We need the ability to display all ongoing alerts prominantly on the website, which will use real time data from the API with the following information:
There is code within the API to pull out each alert based on the above times for each server's local timezone. I based EU servers off CEST, US servers off PDT and Briggs off AUS (but it's dead now)
Currently territory cutoffs aren't being shown in the bar. Technically speaking they're not shown in the game either, but there ideally should be some way of showing cutoffs.
The way this was handled in the old ServerSmash code was to draw a grey bar in the middle of the rest of the bars, and expand it's width when there's cutoffs.
The map tiles no longer render sadly, but you can see by the broken image tiles what it was meant to do. Looks like I used to store the data within files (bad bad bad), below is the data for the map:
Mobile rendering of the leaderboards results in a very poor experience. Loading times are slow for redraws, although do improve once a user searches for something.
Also the headers of the table don't line up with the data upon horizontal scrolling.
Need to investigate if these issues can be mitigated or somehow changed on mobile devices. May have to paginated for mobile.