fw42 / cubecomp Goto Github PK
View Code? Open in Web Editor NEWWCA Rubik's Cube competition website hosting
Home Page: https://cubecomp.de/
License: MIT License
WCA Rubik's Cube competition website hosting
Home Page: https://cubecomp.de/
License: MIT License
There are a bunch of (auto generated) files with no content:
Save
leads to some 404 and Cancel
registers the competitor.
implement a basic mailer to send emails to competitors (confirmation when competitor state changes from new to confirmed). in the old software, you can save a mail template for things like that on the competition.
I suggest we also use https://github.com/Shopify/liquid for the templating here instead of those ugly text-replace hacks I did in the old app...
looks like this in the old app:
When clicking various "delete" buttons, we show a popup that asks "Are you sure?". Some models (competition for example) have several dependent_destroy associations. Would be nice if counts for those would be shown in the popup, e.g. "Are you sure you want to delete this competition? This will also delete 17 competitors, 3 theme files, 2 email templates, ...".
Old software has this feature to compare past results of registered competitors:
@timhabermaas, how hard is this to do with your API?
One common problem in the old website was that people would often misspell their own email addresses which then would have to be manually corrected (if even noticed at all).
Would be nice to match a new competitor registration to existing registrations with the same name or same WCA ID and suggest a correction if the email address of the new registration is different than an email address of an old registration.
Also suggest fixes for common typos (such as .co instead of .com).
There are few issues with full_name = first_name + last_name
:
full_name = last_name + first_name
See also: http://www.w3.org/International/questions/qa-personal-names#singlefield
What do we need the separation between first and last name for?
I just noticed that the guests are now shown on the public website. The former version had an option to handle this.
As the guests being shown on the pulic registration list is almost never desirable, I propose to either bring back the old option to manage this or to not display guest by default.
I added the bundler-audit gem which can generate a report of the gems in your Gemfile that have known security vulnerabilities. We should have those reports either as part of test runs or in a cronjob with email notifications or something like that.
Something like that might already exist as a free service?
Trying to access the website on Android 5.1, Firefox Mobile 37.0.1 by simply typing the URL (no typos) results in:
"An error occured during a connection to admin.cubecomp.de. The OCSP server has no status for the certificate. (Error code: sec_error_ocsp_unknown_cert)"
This is actually more an issue than a feature:
I think I would prefer to simple remove this from the registration page.
I'd like to be able to edit registration comments as it was possible in the previous version.
The goal is, to remove unnecessary information from the checklist, usually by removing the registration comment and aggregating important information as an admin comment.
should be able to pull a couple of things from the WCA db, based on a competitors WCA id.
The settings page only supports entering entrance fees for individual days and then calculates the price for multiple days by adding the values.
The payment system I'm using costs 7.50 euros for either single day but 10 euros for both days instead of 2*7.50 = 15. I'd like to have an option to enter such an alternative price model (which existed in the old admin panel, afaik?) so that the dashboard financial calculations are correct.
Something like https://github.com/jnicklas/capybara or similar for everything that depends on JavaScript.
Things like
Want a feature so that admins are able to "import" an event schedule of a day of another competition and "apply" it to their competition.
Having something similar to http://cube.hackvalue.de/muc14/s/de/stats would be nice
Should have a README with some basic instructions on how to get this app running locally and remotely, how to contribute, etc.
After having learned that old users need to remain for different purposes, I'd like to have the users grouped in "allowed to login: yes" and "allowed to login: no", with the former users being listed first of course.
This way, it is way easier to manage the truely active users and not having them mixed up with the majority of users that only need to remain for other purposes.
My first approach (#121) to fix #119 didn't work. See discussion in patbenatar/jquery-nested_attributes#11. Reverted in 60be0c4.
Need something better (maybe fetching the data from the server instead of just cloning the previous row).
There should be a "reset password" link on the login page that sets a reset token on the User model and sends an email to the user's email address with a URL that has the token in it. Using that URL, the user should be able to set a new password. (reset tokens should be hashed as well)
Admin area should be forced to SSL (and everything else should work with both SSL and non-SSL).
ActiveRecord::RecordInvalid: Validation failed: Entrance fee guests must be greater than 0
So, there's no way to host a competition with no entrance fee? Or do I miss some free
flag somewhere?
Started GET "/assets/codemirror/modes/htmlmixed.js?body=1" for 127.0.0.1 at 2014-10-03 00:41:10 +0200
Started GET "/assets/codemirror/modes/xml.js?body=1" for 127.0.0.1 at 2014-10-03 00:41:10 +0200
Started GET "/assets/codemirror/modes/javascript.js?body=1" for 127.0.0.1 at 2014-10-03 00:41:10 +0200
Started GET "/assets/codemirror/modes/css.js?body=1" for 127.0.0.1 at 2014-10-03 00:41:10 +0200
I don't care...
destroying an item from a table (competitor, theme file, user, competition, ...) should not reload the whole page but destroy the item via ajax and remove the table row from the dom
the old app shows a financial overview to tell organizers how much they will make from the entrance fees. also allows them to compare pricing models.
looks like this:
So a todo item here would be to implement something similar. needs to take into account:
The old code also had an option to set the competition to use "alternative pricing model" where you would define a price for the whole competition rather than for each day individually. The statistics (the $2 column) then shows which pricing model would lead to how much money.
I think we should restructure this a little bit and add another pricing model.
I would like to compare the following three and have an option in the settings to select which one you want:
for each of those 3, we should always be able to differentiate between competitor price and guest price.
might be useful to have two of those tables, one for "confirmed" competitors and one for "new" competitors maybe? not sure if that makes sense
The nametags are obviously larger than before.
For the nametags we usually use they should be about 8,9 x 5,3 cm
It would be very helpful to have those as well under "Email addresses".
http://fusiongrokker.com/post/heavily-customizing-a-bootstrap-typeahead
should do something like this, otherwise it makes a new request on every single character, which is annoying and kinda heavy on the server
Feature so that admins can "import" a theme from another competition and "apply" it to theirs.
Would be cool to ensure that all HTML and CSS is W3C conform... Maybe automated.
The old software had this feature for nametags. Would be fancy to have the same here (nametags already exist, just not the WCA stats in the bottom line).
Again the question: Should we do this once and then cache it or do it in a batch every time the nametags page is rendered?
Use something like https://github.com/holli/auto_strip_attributes to auto strip/squeeze whitespace in string fields
1) Failure:
Admin::NewsControllerTest#test_#create [/Users/tim/Projects/cubecomp/test/controllers/admin/news_controller_test.rb:44]:
--- expected
+++ actual
@@ -1 +1 @@
-2014-09-11 11:30:00 +0200
+Thu, 11 Sep 2014 11:30:00 UTC +00:00
2) Failure:
Admin::NewsControllerTest#test_#update [/Users/tim/Projects/cubecomp/test/controllers/admin/news_controller_test.rb:68]:
--- expected
+++ actual
@@ -1 +1 @@
-2014-09-11 11:30:00 +0200
+Thu, 11 Sep 2014 11:30:00 UTC +00:00
3) Failure:
Admin::EventsControllerTest#test_#update [/Users/tim/Projects/cubecomp/test/controllers/admin/events_controller_test.rb:69]:
Expected: "13:00"
Actual: "15:00"
222 runs, 711 assertions, 3 failures, 0 errors, 0 skips
A user should only be allowed to change their password or email address if they confirm knowledge of the current password (unless admin).
for admins (who can see all competitions), the top right corner competitions drop-down in the admin can get pretty big and hard to navigate. would be nice to implement a fuzzy search, something like http://experiments.muditameta.com/fuzzyDropdown/
We probably want to a) notify someone about it and b) fail gracefully.
https://github.com/fw42/cubecomp/blob/master/app/services/registration_service.rb#L22
def register_as_guest!(day_or_day_id)
register_for_day!(day_or_day_id)
@competitor.event_registrations.on_day(day_id(day_or_day_id)).each(&:destroy!)
end
If this fails while destroying the event registrations there will be a guest which is registered for some events.
That's probably not the only method where things can go wrong.
The old software had this feature where we showed the number of competitions for a competitor if it was a special number (like multiples of 10). See here.
Not sure how best to do this now that the WCA db is an external service and not sure if the API even supports that yet. Ideally, we would do some kind of batch request and not do one request for each competitor.
@timhabermaas, thoughts?
Something for exception notification
maybe for this case it is better to be directed back to "Competition" -> "Settings"
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.