IPTnet / ipt_connect

GNU General Public License v3.0
9 stars 19 forks source link

IPT-connect guidelines and FAQ #69

Open nickkolok opened 6 years ago

nickkolok commented 6 years ago

As we are planning to use ipt-connect for another tournaments, we need to write guidelines and FAQ. Moreover, writing such texts is important for IPT as @vbonvin , unfortunately, probably will be not The Eternal Execom IT.

So, in this issue I'm going to ask my questions and I hope that @vbonvin (and other people who knows) will answer.

  1. How are multiple tournaments handled? Can we use separate databases on the same server for differnet tournaments? How is the code separated?

  2. Who adds the participants to the database? Who has access to edit the participants info?

nickkolok commented 6 years ago

By now, we have the following insruction written by @vbonvin (with some edits from me):


For the moment, this tutorial assumes that you have either the server up and running, or that you managed to install the ipt_connect app on your own computer. It is a good exercice to have the server working on your own machine (TODO: link to server running guidelines, possibly preferring the Docker version).

It should work with django 1.9 and 1.11. No guarantee for older or newer versions. If you are completely new to django, you can follow the djangogirl tutorial (https://djangogirls.org) that will introduce you to the basics in a super simple way, even though you're not a girl.

For this tutorial, I used my local machine and the IPTdev anonymized database, which is public available and ehich is probably the default one. I encourage you to start with a Fresh tournament for which you create everything from scratch, at least to get the hand of the app.

First thing you need is to create yourself an admin account. For this, in the root folder (i.e. where the app is), type

python manage.py createsuperuser

And follow the instruction to set up your credentials. Then, type

python manage.py makemigrations python manage.py migrate

TODO: how are the commands connected to creating a fresh tournament?

This is just to make sure the database is up to date with the code and your django install. Best case scenario, you have a bunch of green flags popping up and everything works well. Worst case scenario, everything fails. Try to understand the error (google is your friend) until these commands run. You can still come back to me if you are stuck. But let's assume it worked. Now type

python manage.py runserver

To run the server. From now on, everything can be done through your browser. Open the address suggested by the prompt in a broswer, should be smth like 127.0.0.1:8000/admin to access the admin panel. It should look like this

1

This is the interface team leaders are using to enter their team credentials. What interest us here is the "current" edition of the tournament, that you can access by clicking on the IPTdev tab.

2

ipt_connect is based on the following logic: Rounds are where the fights happen: they are done in Rooms, with Participants and Jurors that belong to Teams presenting and judging Problems. They should be defined in that order

Teams

3

It only needs a Name and a Pool. Admin is who is in charge of the team, can be left blank. Pool is optional (TODO: is it? If not, it should be!)

Participants

4

Name, surname, etc... Important stuff here is the Team he/she is associated with. TODO: could there be participants with no team? In some cases first the partiipants are added, then the teams are

Jurors

The guys who will put grades. Could be associated to a team.

TODO: with multiple teams.

Problems

If this is not obvious enough, then you are the problem.

Rooms

Where the fights happend

Rounds

6

Here is the important stuff. During the tournament, you will be creating rounds after each physics fights. To each round are associated the PF number (currently 1 to 5, i.e. 4 qualifying fights and the finale but you can adapt that to the current format with semifinals that by changing the npf variable at the top of IPTdev/model.py to 5 and adapting the display in IPTdev/templates/IPTdev/rounds.html), the round number (1 to 4), the room where the fight happens, the teams, participant, etc... Be sure to enter the tactical rejections and eternal rejections entered by the teams. At the end, when the jury grades were collected, they can be entered at the bottom of the interface.

When all the rounds are properly edited, you need to tell the website to update its display. This is triggered by typing a link in your browser, accessible only to superusers:

http://127.0.0.1:8000/IPT2017/update_all

TODO: should the admin trigger the link every time when he wants to update anything?

When this is done, you can access the main tournament page

http://127.0.0.1:8000/IPTdev/

And browse the different section to make sure that everything has been updated properly (it should have been since the app worked last year)

nickkolok commented 6 years ago

And some tips from the execom repo:

Don't forget to add jurys or the chairmen won't be able to add the grades on the interface!

Here: http://connect.iptnet.info/admin/IPTdev/jury/

For TL, select the corresponding team, for guest, just select "------".

Same thing for the rooms: http://connect.iptnet.info/admin/IPTdev/room/

nickkolok commented 6 years ago

How to create a user with desired privileges/permissions?

vbonvin commented 6 years ago

Hi,

I will answer to the questions shortly, but I think we can also have one or more Skype sessions to set things up.

I think it's important to have all the documentation as well as a tutorial written nicely somewhere, and for that readthedoc is one very convenient way to go, plus it's already half set up. If you are not familiar with it I can introduce you to the basics by Skype.

Would you be available at some point this week for that?

david2457 commented 6 years ago

How are things getting along with this?

nickkolok commented 6 years ago

@david2457 Working hard in Voronezh. https://voronezh.iptnet.info/Repnoe2018_7/poolranking

david2457 commented 6 years ago

This is looking fantastic <3 Our first IPT connect for a university tournament! Great work :)

On Wed, Aug 29, 2018 at 9:01 AM, nickkolok notifications@github.com wrote:

@david2457 https://github.com/david2457 Working hard in Voronezh. https://voronezh.iptnet.info/Repnoe2018_7/poolranking

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/vbonvin/ipt_connect/issues/69#issuecomment-416862277, or mute the thread https://github.com/notifications/unsubscribe-auth/AbCarv5c_lbnIiPIzD3K24XuWUu7yPyQks5uVkpAgaJpZM4Vtmsa .