A collection of different QOL improvements and additional features for the site szkopul.edu.pl!
A collection of different QOL improvements and additional features for the site szkopul.edu.pl!
Hope this ship counts with the missing 30 hrs!
Today I made a lot of chore-pr-like improvements including:
and
I will be submitting the new versions for review and we will se how much time it will take for mozilla to cop on! See ya 
Log in to leave a comment
Mozilla finally reviewed the extension!1!! It was, indeed an automated screening, and I dont know why but it seems like the extension wasnt properly registered and couldnt be analyzed by their system until a human intervention or something… Good thing is it is here. I hope the updates will be a lot quicker!
Thank you all for voting, its really nice to read the comments and feedback! And I know that this projects target group is very specific and small, but Im trying my best to show my path and what Im doing and trying to improve for this sites community, through some reverse-engineering and tinkering with the source.
Also, the devlog… right…
So today I fixed the ‘pinned contests’ card not being displayed on mobile devices. It turns out that the mobile version and the desktop version are two separate, massive divs with almost the same content lol. That would partially explain the enormous loading times…
I decided we dont need the stats card because it would bring up only clutter, as you dont usually use szkopuł on a phone. The contest links are an exception because they are for convenience.
See ya next time! 
Log in to leave a comment
Reship because the previous one was bugged and didn’t queue for voting!
I spent most of today’s time trying to make some kind of dynamic pinning system (I wanted the extension icon pinned or shown in the toolbar only when the user is on the szkopuł site), but that didn’t quite work out because the feature allowing this was removed both from firefox and chromium some time ago (and by some time I mean like 6 years). But that’s okay, only the user will have to deal with it.
From other updates – Mozilla still hasnt reviewed the first version of the extension :))) Love you mozilla!!
I will need to actually do some tasks on the site to test out the extension… See ya! 
Log in to leave a comment
I caught myself jumping from project to project (my two projects on ft specifically), but thats not that bad right? Im kinda stuck waiting anyway because it looks like this one (the ship 4 devlogs ago) didnt enter the voting queue yet
.
Anyway, today I improved the task archive functionality by:
I also fixed the emitTaskSolved function which I wrote about some time ago. From other updates – Mozilla still hasnt reviewed the first version of the extension :))) Love you mozilla!!
See ya next time 
Log in to leave a comment
Hello, another quick update. What you are seeing here on the screenshot is the task archive tab. It displays tasks grouped by categories and by contests. I removed unnecessary UI and added the shuffle icon button. It opens a random task from the category or the whole contest (on top). Like I wrote before, the system does not provide any kind of API so everything is scraped from the HTML. This one was relatively easy - it was just <li> elements under each div. See you next time!
BTW: It works with the filters (built into the site, you can filter for example from just one stage and the random button will pick from the filtered results)!
Log in to leave a comment
Oooooookay! Shipped the 1.0 version, but still no votes
and firefox still hasnt reviewed the listing! I might have to send them an email to check if its not bugged or anything or if I have to send something else to them.
Anyway, here is the new landing page! The pinned contests are in progress, but I think it looks much much better than before!
Log in to leave a comment
As you can see, Ive implemented a nice dashboard or summary on the main page of szkopul. It shows blank data now because this is a new account and the extension storage resets every time I reload the package, so you need to trust me it works on this one! And with this I think Im ready to ship!
Log in to leave a comment
Today I added the ‘reveal score’ button that shows in the menu when you have the hideScores option enabled, and the task has been submitted. Here is a gif of how it works:
Log in to leave a comment
Woah! Those two hours were quite productive. Ive implemented two features – inline task statements and on-same-page task statements as I call it. It works by embedding the statement links. I am a little worried about cashing on those ’s (sometimes the PDFs are updated very dynamically), but I will fix that when someone or I actually find the issue.
Log in to leave a comment
Today I redesigned the options page and made the export/import/erase data buttons work again! With FT being extended (ive read the message yesterday, so happy :) i may even have the change for a mac mini!
Log in to leave a comment
Chrome accepted my extension! I uploaded the first version yesterday and it got published!
Right now Im working on making the extension options better – I added a struct and a ‘default options’ object like for the virtual contest options because it worked well! I added options.ts with those objects and functions to get and save the options. Im seeing more and more files in the project that I intended to do in like 2 days…
Well, its not that bad and I hope some people (more than just me and the people that will vote) are actually going to use it. We will see. Look to commits history for more, and see you next time!
Log in to leave a comment
Moving on to the main function of my extension, Im building the panel which will display the tasks and the left time and the score counting system.
On the screen here is a ‘block unrelated subpages during virtual round’ setting working!
Log in to leave a comment
Today I fixed adding problems to a virtual contest (had to get rid of the animation for now :(( cuz if was bugged af), made functions to get and update the virtual contest options and made the ui save the settings.
Right now I have a loadSettings() async function that gets the object from the extension storage and sets the switches state accordingly. I should probably switch from await to .then() for it to be faster, but I want to get this working first. Remind me of that when I do!!
See you next time!
Log in to leave a comment
I mean, not fully done, but I did what I wanted to do today – that is: the ability to add and remove problems to a virtual contest from the problemset and rendering the table (name + link + delete button). Im saving this data in the extension storage like previously, but this time in an array of a specified type (imma need to fix the todo later so its more organised and more like this).
So next up is contest-specific settings (those will override the ones set in ‘options’ that apply normally), drawing a nice panel with the tasks during the contest and finally - the functionality! (maybe I should have started from that? It seems like the most import… eh whatever). See you next time!
Log in to leave a comment
Again, sorry for the Polish… I will try to do the rest in English using the translations (those are only hard-coded placeholder examples, so thats why)
On the screen you can see the virtual contest setup view – the main feature. I want to finish it first, preferably even today if I’ll be able to! Right now, Im rendering the tabs with lit and filling the placeholders when the data from browser.storage is downloaded – I also need to think of some way to cache those so its faster.
Conclusions from today: bootstrap is clumpy and much harder to use then just some tailwind plugins…
Log in to leave a comment
Biggest change today: Extension data management upgrades!
You can delete, export and import all the extension data (i.e. todos, current settings, language and more in the future). Export button just downloads a JSON blob from all the browser.storage items for the user, and import loads them (replaces current data).
Also, the popup if fully translated now and the language switch works!
Log in to leave a comment
Today (this one hour) I focused on translations – I added a dropdown in the options page in the popup to change language. I have Polish and English available.
I also fixed some typos and styling issues.
Here is my overall plan of features:
One more thing that I would really want to add are comments under each task (with firebase or some other serverless db). But that is more complicated so Im marking it as an additional ‘maybe will come in the future’ thing in the end.
Log in to leave a comment
First devlog, 10hrs, but that’s because I originally thought that this project wouldn’t be going on Flavortown. I thought that, because it is a browser extension and it is for a Polish site for oi (szkopul.edu.pl). I don’t expect many (or any people at all) that will vote to use the site. Anyways, some guy told me it was okay, so if youre a shipwriht reviewing this project, blame it on him :)
During this project, I will be learning the web extension development process :). I already know js and stuff and moreover I know how the site Im modifying works internally (its open-sourse, sio2project/oioioi on github), but it still requires some tinkering to go from making my site to trying to reverse-engineer someone else’s site.
So far I’ve created the popup’s HTML (screen 2) and menu injector (screen 1), more info and plans in the next posts – see you there!
Log in to leave a comment