Puzzlehunt Server Documentation

Size: px
Start display at page:

Download "Puzzlehunt Server Documentation"

Transcription

1 Puzzlehunt Server Documentation Release v3.1.1 Dillon Lareau Feb 16, 2018

2 Contents 1 Setup Environment setup Code Setup Database setup Django setup Apache setup Basics Design Dynamic Content Static Content Database Models 5 4 Views Hunt Views Info Views Staff Views Auth Views How to Create a Hunt Create Hunt Object Edit Hunt Template Create Puzzle Objects Create Auto-Response Objects Update Current Hunt Label How to Run a Hunt Download Puzzles Playtester Setup Hunt Start Staff Pages / During the Hunt Hunt End Changelog Version Older Versions Contribute 22 i

3 Chapter 1 Setup Instructions on how to setup a machine to run this project. 1.1 Environment setup Install the following packages: python 2.7 mysql-client mysql-server python-mysqldb python-dev imagemagick libmysqlclient-dev Install the required python packages using: pip install -r requirements.txt 1.2 Code Setup If you haven t already, clone the repository to a location that the user running the server will have access to. Instantiate a copy of the secret settings file by copying the secret settings template: cp puzzlehunt_server/secret_settings.py.template puzzlehunt_server/secret_settings.py Then replace the default settings such as the database login details and secret key. (If needed, look up instructions on how to generate a new secret key) 1

4 1.3 Database setup This project is configured to use a MySQL database. It can be configured to use a different type of database by modifying settings in secret_settings.py, but those modifications are out of the scope of this setup. First we have to create the user and database that the application will use. To do so, log into the mysql client as a superuser and enter the following commands. (substituting your password and username) CREATE DATABASE puzzlehunt_db; GRANT ALL PRIVILEGES ON puzzlehunt_db.* TO 'nottherealusername'@'localhost' IDENTIFIED BY 'nottherealpassword'; 1.4 Django setup Migrate the database by running python manage.py migrate. Create a superuser for the project by running python manage.py createsuperuser and following the instructions. Collect all of the static files by running python manage.py collectstatic. At this point the server should be able to start up. Developers note: There may be a few other steps before the server will function without error. For example I believe it expects at least one hunt object to exist. I hope to one day have those needs either be documented or not exist any more. 1.5 Apache setup The full setup of an apache server is beyond this documentation, but an example configuration file that should be a good starting point is available in the /config directory of the repository. That particular configuration file requires: libapache2-mod-xsendfile libapache2-mod-proxy-html libapache2-mod-wsgi libapache2-mod-shib2 Part of the server and the apache configuration is the integration with Shibboleth for secure authentication of users. Again, this documentation couldn t possibly go over all aspects of setup. If you are setting this up from scratch, I recommend the following link: CMU Shibboleth Setup Instructions However replace the CMU provided shibboleth2.xml with the shibboleth2.xml in the /config directory of the repository Database setup 2

5 Chapter 2 Basics Despite it s size, this project only has one main app named huntserver which does nearly everything. This page is meant to outline basic low level operational aspects and design choices of the server. You can find more on how to effectively create and run a hunt in other pages. 2.1 Design The design of this project is somewhat divided into two parts, the staff experience and the hunt participant experience. Staff is anyone that has the staff attribute set in the admin page. These users have access to the /staff/ area of the site; however, in order to access all functions and access the /admin/ area of the site, the user must also be a superuser as designated by Django. 2.2 Dynamic Content Dynamic content is created by using a combination of the model-view controller and the default Django templating engine. Both are extensively documented on Django s website. Both models and views used in this project are documented by later pages. 2.3 Static Content Static files are managed by Django with each app having it s own collection of static files. These files are gathered in the main static directory ({PROJECT FOLDER}/static/ ) by running python manage.py collectstatic. This main static directory is not tracked by git, and therefore you should not put any content directly into this folder. Puzzles should not be checked into the Github repository. They should exist on some accessible online file source (we have used Dropbox in the past) and will be downloaded and converted when the admin choses to do so. Once downloaded, the puzzle files live in {PROJECT FOLDER}/media/puzzles/ and are named using the puzzle id field of the puzzle which is enforced to be unique to each puzzle. To protect users from being able to just go to /media/puzzles/{puzzle_id}.pdf and get puzzles, the server comes included with a protected routing path utilizing X-Sendfile. The /protected/ URL will only allow a user to 3

6 access puzzle files if they have unlocked the puzzle. To avoid hard-coding that path, you can use the variable settings.protected_url after importing the project settings. It is a bit simplistic, but anything in the puzzles directory is permission guarded by the first 3 characters of the filename. If the requesting user has access to the puzzle object with the corresponding 3 character puzzle_id, then they will have access to that file. You can use this to protect files other than just the puzzle PDFs and PNGs. You should protect your /media/puzzles URL by only allowing access to /media/puzzles/ from internal sources. The Apache configuration for this project includes protection like this already. 2.4 Database As noted in setup, the default database for this project is a MySQL database. After setup, the database should never need to be modified by hand, additions or deletions should be done from the online admin GUI or if absolutely necessary, from the Django interactive shell. Modifications to the table structure should only be done by modifying models.py and using the automatically created migration files Database 4

7 Chapter 3 Models class huntserver.models.hunt(*args, **kwargs) Base class for a hunt. Contains basic details about a puzzlehunt. Parameters id (AutoField) Id hunt_name (CharField) The name of the hunt as the public will see it hunt_number (IntegerField) A number used internally for hunt sorting, must be unique team_size (IntegerField) Team size start_date (DateTimeField) The date/time at which a hunt will become visible to registered users end_date (DateTimeField) The date/time at which a hunt will be archived and available to the public location (CharField) Starting location of the puzzlehunt is_current_hunt (BooleanField) Is current hunt template (TextField) The template string to be rendered to HTML on the hunt page exception DoesNotExist exception MultipleObjectsReturned is_locked A boolean indicating whether or not the hunt is locked is_open A boolean indicating whether or not the hunt is open to registered participants is_public A boolean indicating whether or not the hunt is open to the public class huntserver.models.huntassetfile(*args, **kwargs) A class to represent an asset file for a puzzlehunt Parameters id (AutoField) Id 5

8 file (FileField) File exception DoesNotExist exception MultipleObjectsReturned class huntserver.models.message(*args, **kwargs) A class that represents a message sent using the chat functionality Parameters id (AutoField) Id team_id (ForeignKey to Team) The team that this message is being sent to/from is_response (BooleanField) A boolean representing whether or not the message is from the staff text (CharField) Message text time (DateTimeField) Message send time exception DoesNotExist exception MultipleObjectsReturned class huntserver.models.overwritestorage(location=none, base_url=none, file_permissions_mode=none, directory_permissions_mode=none) get_available_name(name) Returns a filename that s free on the target storage system, and available for new content to be written to. class huntserver.models.person(*args, **kwargs) A class to associate more personal information with the default django auth user class Parameters id (AutoField) Id user_id (OneToOneField to User) The corresponding user to this person phone (CharField) Person s phone number, no particular formatting allergies (CharField) Allergy information for the person comments (CharField) Comments or other notes about the person is_shib_acct (BooleanField) A boolean to indicate if the person uses shibboleth authentication for login teams (ManyToManyField) Teams that the person is on exception DoesNotExist exception MultipleObjectsReturned class huntserver.models.puzzle(*args, **kwargs) A class representing a puzzle within a hunt Parameters id (AutoField) Id puzzle_number (IntegerField) The number of the puzzle within the hunt, for sorting purposes 6

9 puzzle_name (CharField) The name of the puzzle as it will be seen by hunt participants puzzle_id (CharField) A 3 character hex string that uniquely identifies the puzzle answer (CharField) The answer to the puzzle, not case sensitive link (URLField) The full link (needs to a publicly accessible PDF of the puzzle num_required_to_unlock (IntegerField) Number of prerequisite puzzles that need to be solved to unlock this puzzle hunt_id (ForeignKey to Hunt) The hunt that this puzzle is a part of num_pages (IntegerField) Number of pages in the PDF for this puzzle. Set automatically upon download unlocks (ManyToManyField) Puzzles that this puzzle is a possible prerequisite for exception DoesNotExist exception MultipleObjectsReturned serialize_for_ajax() Serializes the ID, puzzle_number and puzzle_name fields for ajax transmission class huntserver.models.response(*args, **kwargs) A class to represent an automated response regex Parameters id (AutoField) Id puzzle_id (ForeignKey to Puzzle) The puzzle that this automated response is related to regex (CharField) The python-style regex that will be checked against the user s response text (CharField) The text to use in the submission response if the regex matched exception DoesNotExist exception MultipleObjectsReturned class huntserver.models.solve(*args, **kwargs) A class that links a team and a puzzle to indicate that the team has solved the puzzle Parameters id (AutoField) Id puzzle_id (ForeignKey to Puzzle) The puzzle that this is a solve for team_id (ForeignKey to Team) The team that this solve is from submission_id (ForeignKey to Submission) The submission object that the team submitted to solve the puzzle exception DoesNotExist exception MultipleObjectsReturned serialize_for_ajax() Serializes the puzzle, team, time, and status fields for ajax transmission class huntserver.models.submission(*args, **kwargs) A class representing a submission to a given puzzle from a given team 7

10 Parameters id (AutoField) Id team_id (ForeignKey to Team) The team that made the submission submission_time (DateTimeField) Submission time submission_text (CharField) Submission text response_text (CharField) Response to the given answer. Empty string indicates human response needed puzzle_id (ForeignKey to Puzzle) The puzzle that this submission is in response to modified_date (DateTimeField) Last date/time of response modification exception DoesNotExist exception MultipleObjectsReturned is_correct A boolean indicating if the submission given is exactly correct serialize_for_ajax() Serializes the time, puzzle, team, and status fields for ajax transmission class huntserver.models.team(*args, **kwargs) A class representing a team within a hunt Parameters id (AutoField) Id team_name (CharField) The team name as it will be shown to hunt participants hunt_id (ForeignKey to Hunt) The hunt that the team is a part of location (CharField) The physical location that the team is solving at join_code (CharField) The 5 character random alphanumeric password needed for a user to join a team playtester (BooleanField) A boolean to indicate if the team is a playtest team and will get early access solved (ManyToManyField) The puzzles the team has solved unlocked (ManyToManyField) The puzzles the team has unlocked unlockables (ManyToManyField) The unlockables the team has earned exception DoesNotExist exception MultipleObjectsReturned is_normal_team A boolean indicating whether or not the team is a normal (non-playtester) team is_playtester_team A boolean indicating whether or not the team is a playtesting team class huntserver.models.unlock(*args, **kwargs) A class that links a team and a puzzle to indicate that the team has unlocked the puzzle Parameters id (AutoField) Id 8

11 puzzle_id (ForeignKey to Puzzle) The puzzle that this is an unlock for team_id (ForeignKey to Team) The team that this unlocked puzzle is for time (DateTimeField) The time this puzzle was unlocked for this team exception DoesNotExist exception MultipleObjectsReturned class huntserver.models.unlockable(*args, **kwargs) A class that represents an object to be unlocked after solving a puzzle Parameters id (AutoField) Id puzzle_id (ForeignKey to Puzzle) The puzzle that needs to be solved to unlock this object content_type (CharField) The type of object that is to be unlocked, can be IMG, PDF, TXT, or WEB content (CharField) The link to the content, files must be externally hosted. exception DoesNotExist exception MultipleObjectsReturned 9

12 Chapter 4 Views 4.1 Hunt Views huntserver.hunt_views.protected_static(request, file_path) A view to serve protected static content. Does a permission check and if it passes, the file is served via X- Sendfile. huntserver.hunt_views.hunt(request, hunt_num) The main view to render hunt templates. Does various permission checks to determine the set of puzzles to display and then renders the string in the hunt s template field to HTML. huntserver.hunt_views.current_hunt(request) A simple view that calls huntserver.hunt_views.hunt with the current hunt s number. huntserver.hunt_views.puzzle_view(request, puzzle_id) A view to handle answer submissions via POST, handle response update requests via AJAX, and render the basic per-puzzle pages. huntserver.hunt_views.chat(request) A view to handle message submissions via POST, handle message update requests via AJAX, and render the hunt participant view of the chat. huntserver.hunt_views.unlockables(request) A view to render the unlockables page for hunt participants. 4.2 Info Views huntserver.info_views.index(request) Main landing page view, mostly static with the exception of hunt info huntserver.info_views.current_hunt_info(request) Information about the current hunt, mostly static with the exception of hunt info huntserver.info_views.previous_hunts(request) A view to render the list of previous hunts, will show any hunt that is public huntserver.info_views.registration(request) The view that handles team registration. Mostly deals with creating the team object from the post request. The rendered page is nearly entirely static. 10

13 huntserver.info_views.user_profile(request) A view to handle user information update POST data and render the user information form. 4.3 Staff Views huntserver.staff_views.queue(request, page_num) A view to handle queue response updates via POST, handle submission update requests via AJAX, and render the queue page. Submissions are pre-rendered for standard and AJAX requests. huntserver.staff_views.progress(request) A view to handle puzzle unlocks via POST, handle unlock/solve update requests via AJAX, and render the progress page. Rendering the progress page is extremely data intensive and so the view involves a good amount of pre-fetching. huntserver.staff_views.charts(request) A view to render the charts page. Mostly just collecting and oraganizing data huntserver.staff_views.admin_chat(request) A view to handle chat update requests via AJAX and render the staff chat page. Chat message submissions are sent to huntserver.hunt_views.chat. Chat messages are pre-rendered for both standard and AJAX requests. huntserver.staff_views.hunt_management(request) A view to render the hunt management page huntserver.staff_views.control(request) A view to handle all of the different management actions from staff users via POST requests. This view is not responsible for rendering any normal pages. huntserver.staff_views. s(request) A view to send s out to hunt participants upon recieveing a valid post request as well as rendering the staff form page huntserver.staff_views.depgraph(request) A view to generate and render the puzzle dependency graph visualization 4.4 Auth Views huntserver.auth_views.login_selection(request) A mostly static view to render the login selection. Next url parameter is conserved. huntserver.auth_views.create_account(request) A view to create user and person objects from valid user POST data, as well as render the account creation form. huntserver.auth_views.account_logout(request) A view to logout the user and hopefully also logout out the shibboleth system. huntserver.auth_views.shib_login(request) A view that takes the attributes that the shibboleth server passes back and either logs in or creates a new shibboleth user. The view then redirects the user back to where they were Staff Views 11

14 Chapter 5 How to Create a Hunt Below are all of the steps you should need to take to create a puzzlehunt and have it ready to run: 5.1 Create Hunt Object You aren t going to get very far without a hunt object to attach all of this data to, so sign in with a staff account and navigate over to {server URL}/admin/huntserver/hunt/ Click the Add Hunt button at the top. You will be brought to the hunt creation page, which you should fill out, keeping in mind the following points: Make sure the start date is accurate or at the very least in the future, otherwise people will be able to see your hunt immediately. Make sure the end date is after the start date. Do not check the Is current hunt box just yet See the section below before putting anything into the template editor. Just to be safe, go ahead and click the Save and continue editing before moving onto the next section. 5.2 Edit Hunt Template Basic information This is where we give the hunt it s look and feel. Before this point, navigating to /hunt/{hunt_number} would just give you a blank page. Everything typed into the Template form on the hunt editing page will be run through django s templating engine and rendered as HTML. The following context will be passed to the renderer for use in the template: {'hunt':..., 'puzzles':..., 'team':..., 'solved':...} where hunt is the current hunt object, puzzles is the list of puzzle objects that the team has currently unlocked, team is the team of the user that is viewing the page, and solved is the list of puzzle objects that the team has currently solved. All of those are pretty self explanatory. 12

15 While you may use completely custom HTML, it is STRONGLY RECOMMENDED that you follow the instructions below on how to inherit the base template to get nice features like the header bar, common style sheets, google analytics, and graceful degradation when the hunt becomes public A note about static files As of version 3.0.0, in order to reduce repository clutter, it is now against policy to commit files specific to a certain hunt to the respository. This means that you are no longer allowed to put images, fonts, and other files in /huntserver/static or /static. To still allow the use of new static files in each hunt, a new object class has been created called Hunt Asset Files. This class allows uploading of assets from the web interface, removing the need to interact with the hosting server directly. To upload a new asset file, navigate to {server URL}/admin/huntserver/huntassetfile/ and click the blue Add hunt asset file button at the top. On the following screen, choose the file you wish to upload and hit save. Keep in mind that the URL for the file will be generated based on the uploaded file name and cannot be changed once uploaded, so name your files beforehand. After you upload your file, click the save button and you will be taken back to the list of asset files. Next to each asset file is the link to use in your html template to access that file. It is clear to see that for each file, the link is just /media/hunt/assets/{name of file} Inheriting the base template If you don t already know about how Django template inheritance and blocks work, you can go read up on them here: I promise it won t take too much time to read, isn t too hard to understand, and will make the content below understandable. Now that you know about blocks and inheritance, You ll want to start with the following template code at a minimum: {% extends "hunt_base.html" %} {% block content %} Your content here {% endblock content %} That is the most basic example you can get and will look very bland. Here are some other blocks you can override to get additional custom behavior: title Overriding the title block with whatever content you want to show up in the tab title. The default value for this block is Puzzlehunt! base_includes Overriding the base_includes block will insert content before the standard bootstrap and jquery imports allowing you to override unwanted boostrap styles. The default value for this block only imports hunt_base.css. includes Overriding the includes block will insert content after the standard bootstrap and jquery imports, for content that you want to use to extend those libraries, or content that relies on those libraries. footer Overriding the footer block will insert content at the bottom of the page. The default value is links to our social media and bridge page Edit Hunt Template 13

16 5.2.4 Starter example While you may have all of the information you need, that doesn t mean you know what to do with it. Below is a simple example base upon our first hunt. It will show the puzzles, display the answer for any solved puzzles, and demonstrates how to insert a break a hunt into two rounds. {% extends "hunt_base.html" %} {% block title %}Puzzles!{% endblock title %} {% block base_includes %} <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}huntserver/hunt_base.css "> <style>.puzzle-name { white-space: nowrap; overflow: hidden; width: 320px; } </style> {% endblock base_includes %} {% block content %} <div class="container" > <div class="row" > <div class="content col-md-6 col-md-offset-3" id='puzzle-frame'> <h1 class="title">puzzlehunt: The Musical</h1> <div id="puzzles"> <table> <thead> <tr> <th style='width: 320px'>Puzzle Name</th> <th style='width: 180px'>Solution?</th> </tr> </thead> <tbody> {% for puzzle in puzzles %} {% if puzzle.puzzle_number == 8 %} </tbody> </table> <h3 class="title">- Intermission -</h3> <table> <tbody> <col width="320px"> <col width="180px"> {% endif %} <tr id='puzzle{{ puzzle.puzzle_number }}' class='puzzle'> <td> <p class="puzzle-name"> <a href='/puzzle/{{ puzzle.puzzle_id }}/'> {{puzzle.puzzle_name}} </a> </p> </td> <td> {% if puzzle in solved %} {{ puzzle.answer upper }} {% endif %} </td> (continues on next page) 5.2. Edit Hunt Template 14

17 </tr> {% endfor %} </tbody> </table> </div> <p> Feeling stuck? <a href="/chat/">chat</a> with us</p> </div> </div> </div> {% endblock content %} (continued from previous page) 5.3 Create Puzzle Objects Great, now we have a hunt template and we can view our hunt, but that s not good without any puzzles, so lets add some. Start by going to {server URL}/admin/huntserver/puzzle/ and clicking the New Puzzle button at the top. You will be brought to the puzzle creation page, which you should fill out, keeping in mind the following points: Puzzle number should ideally be incremental starting at 1, this will be used for ordering puzzles Puzzle ID should be unique across all puzzles ever made, and it is good practice to have the last two digits match the puzzle number Link should be a publicly accessible PDF link (including that doesn t require any authentication to access You don t need to fill in num pages, the server will do that for you upon downloading Num required to unlock represents the number of puzzles in the below list that need to be solved to unlock this puzzle. Any puzzle with a 0 here will be considered part of the initial set Don t worry about Responses right now, we ll talk about that below. After filling out the page, hit Save and add another and continue to add puzzles until you have added all of the puzzles for the hunt. This will take a while, my recommendations are to be patient and have the unlocking graph on hand. 5.4 Create Auto-Response Objects This section is completely optional, but will make your life easier once the hunt is running. At the moment, whenever a user has submitted a correct answer, the server will respond Correct! and whenever the user submits a wrong answer the server will respond Wrong Answer. Often you will want additional customized responses that can do anything from tell the user how they are wrong to tell them to Keep going!. All you have to do is to go back into the edit page for a specific puzzle and enter regexes and response texts in the response boxes at the bottom of the page. Some notes about the responses: Regexes are in python syntax You are allowed to regex upon the correct answer and override the default Correct! response, the puzzle will still be marked as solved 5.3. Create Puzzle Objects 15

18 Regexes are currently applied in no guaranteed order, answer that satisfy more than one regex are considered undefined behavior Response texts are allowed to contain markdown style links: [foo]( 5.5 Update Current Hunt Label Congratulations! You have finished creating a hunt, head over to {server URL}/staff/management/ and click the Set as Current button next to your new hunt. This will cause it to become the hunt represented by the staff pages such as the Progress and Queue pages, it will be displayed on the homepage as the Upcoming hunt, and it will be open to team registration. If any of those sound like things you don t want yet, you can wait as long as you want to set the hunt as the current hunt Update Current Hunt Label 16

19 Chapter 6 How to Run a Hunt So you want to run a puzzlehunt... Below are all of the steps you should need to take to run an already created puzzlehunt: 6.1 Download Puzzles Before anybody can start playing your hunt, you have to download the puzzles. Head over to {server URL}/ staff/management/, make sure the hunt you are trying to run is marked as the current hunt, and click the Fetch ALL puzzles from URLs. It will take a few minutes, be patient. That should just work, if it doesn t, check your links, check your PDF accessibility and try again. (if you really think it is a bug, feel free to submit an issue) 6.2 Playtester Setup You probably want people to test your hunt before the actual event. This is easy using the puzzlehunt server. Just have the team of playtesters sign up like normal, then navigate to {server URL}/admin/huntserver/team/, find the team, check the Playtester checkbox on their edit page, and save the team. They will then have access to the puzzlehunt as if it was open to them. Note: To mimic the exact puzzle experience, they will only have access to puzzles that are unlocked for them, so make sure to head over to the progress page and make sure to unlock their starting puzzles. Like any other team, their progress will be visible on the progress page, their submissions on the queue page, and their messages on the chat page. 6.3 Hunt Start Okay, the hunt is almost ready to happen, you ve downloaded all the puzzles, you ve had people playtest the hunt, and now you re ready to turn it over to the public. Below is a short checklist of items to consider before and during the first few minutes of the event. Before the hunt: 17

20 [ ] Make sure the hunt start time is accurate [ ] Reset all progress from the management page [ ] Ensure all puzzles have working PDFs and images [ ] Ensure all teams have room assignments Start of the hunt: [ ] When you want to release the puzzles, click Release Initial Puzzles from the management page [ ] Ensure that all teams show puzzles as unlocked on the progress page (may take a moment to update) [ ] Have someone watching each of the staff pages (see below) 6.4 Staff Pages / During the Hunt Hopefully your opening information session went well, the puzzles released flawlessly and people are now solving puzzles. Time to sit back and watch/make the magic happen with the help of the following staff pages: Progress page: One of the 2 pages you definitely are going displayed somewhere during the hunt. Some cool features about this page: The number of solved puzzles the team has solved is displayed next to each team The color of each unsolved puzzle for a team will slowly fade from yellow to red the longer they have had the puzzle unlocked but not solved. The last submission time will be visible in the cell for unsolved puzzles The solve time will be visible in the cell for solved puzzles Queue page: The other page you will almost certainly want displayed somewhere during the hunt. Now that all answers are automatically responded to in one way or another upon submission, there is less work to do on this page, but make sure to keep an eye out for teams that need help or have possibly just misspelled something. You can always update the submission response using the Fix link. The new content will be pushed to the team s page automatically. Chat page: It is important to maintain communication with the teams, which is where the chat page comes in. New messages from a team since the page was loaded will make the team s name appear in red. Only teams that have sent a message to the staff will show up on the list. If you absolutely need to send a message to a team who has not contacted staff yet, you can manually do so from the /admin/huntserver/message/ page. Management page: The only thing you would want to do with the management page during the hunt is to update puzzle PDFs. If you find that you need to make a change, simply update the remote PDF content, and fetch the single puzzle with the single puzzle fetch button. The PDF and PNGs should update to match the remote content. page: You can use this to send from the configured to all hunt participants. If you don t trust the interface for some reason or want to send something fancier than plain text, you can click the Click to show all s button to display all hunt participant s and send something manually. Charts page: Everybody likes charts! At the moment, we have the following charts: Graph of number of teams that have any given puzzle locked, unlocked or solved Graph of correct vs incorrect submissions for all puzzles 6.4. Staff Pages / During the Hunt 18

21 Graph of submissions over time during the hours that the hunt was open Graph of solves over time during the hours that the hunt was open 6.5 Hunt End The hunt is nearing completion, hopefully everything went well and enough teams have completed the hunt to satisfy you. If you think the hunt hasn t run long enough, be sure to update the hunt end time before you reach it. Once the hunt end time is reached, all puzzles will be available for the public and all hunt interfaces will update to indicate that the hunt is over Hunt End 19

22 Chapter 7 Changelog 7.1 Version v3.1.1 Updates: Updated documentation to include instructions for hunt asset files v3.1.0 New: Users can now update their profile information including name, , phone, and food preferences Teams can now update their own location from the registration page Automatic submission responses now support markdown style links Progress page now has a button to unlock a specific puzzle for all teams New 404 and 500 error pages to match website s style Updates: Removed unlockables tab from hunt header due to disuse Progress and Queue page now have sleeker more compact look Hunt info page now pulls max team size from database Contact us page now has more contact info Unused /staff URLs will now route to /admin URLs Bugfixes: Fixed bug where team names could be made entirely of whitespace characters Removed dummy teams from all normal hunt interactions Fixed bug where parts of old hunt headers lead to the current hunt pages Fixed bug where staff announcements triggered new message alert for other staff members. 20

23 Fixed bug in relating to the use of is not None in info_views v3.0.3 New: Documentation of models, views, configuration, and how to run the server v3.0.2 Bugfixes: Fixed bug where chat would throw an error if the hunt did not have any messages yet Fixed bug where sometimes staff chat button remapping script wouldn t load v3.0.1 Bugfixes: Fixed bug where staff had to have puzzle unlocked to view puzzle v3.0.0 New: Staff interaction with server via SSH is no longer necessary for normal hunt creation The template for each puzzlehunt is now editable from an web-based inline editor * The editor is located on the admin page for each hunt * The editor supports syntax highlighting for HTML and CSS * HTML files in the template folder of the form hunt#.html are now useless Hunt-specific web assets such as fonts and images can now be uploaded from admin interface * Assets are stored in the /media/hunt/assets/ directory Hunt specific files should no longer be included in the repository 7.2 Older Versions You can find the changelog for older versions in the online documentation at Older Versions 21

24 Chapter 8 Contribute Source Code: Issue Tracker: If you are having issues, please let us know. dlareau@cmu.edu The project is licensed under the MIT license. 22

25 Index A account_logout() (in module huntserver.auth_views), 11 admin_chat() (in module huntserver.staff_views), 11 C charts() (in module huntserver.staff_views), 11 chat() (in module huntserver.hunt_views), 10 control() (in module huntserver.staff_views), 11 create_account() (in module huntserver.auth_views), 11 current_hunt() (in module huntserver.hunt_views), 10 current_hunt_info() (in module huntserver.info_views), 10 D depgraph() (in module huntserver.staff_views), 11 E s() (in module huntserver.staff_views), 11 G get_available_name() (huntserver.models.overwritestorage method), 6 H Hunt (class in huntserver.models), 5 hunt() (in module huntserver.hunt_views), 10 Hunt.DoesNotExist, 5 Hunt.MultipleObjectsReturned, 5 hunt_management() (in module huntserver.staff_views), 11 HuntAssetFile (class in huntserver.models), 5 HuntAssetFile.DoesNotExist, 6 HuntAssetFile.MultipleObjectsReturned, 6 huntserver.models (module), 5 I index() (in module huntserver.info_views), 10 is_correct (huntserver.models.submission attribute), 8 is_locked (huntserver.models.hunt attribute), 5 is_normal_team (huntserver.models.team attribute), 8 is_open (huntserver.models.hunt attribute), 5 is_playtester_team (huntserver.models.team attribute), 8 is_public (huntserver.models.hunt attribute), 5 L login_selection() (in module huntserver.auth_views), 11 M Message (class in huntserver.models), 6 Message.DoesNotExist, 6 Message.MultipleObjectsReturned, 6 O OverwriteStorage (class in huntserver.models), 6 P Person (class in huntserver.models), 6 Person.DoesNotExist, 6 Person.MultipleObjectsReturned, 6 previous_hunts() (in module huntserver.info_views), 10 progress() (in module huntserver.staff_views), 11 protected_static() (in module huntserver.hunt_views), 10 Puzzle (class in huntserver.models), 6 Puzzle.DoesNotExist, 7 Puzzle.MultipleObjectsReturned, 7 puzzle_view() (in module huntserver.hunt_views), 10 Q queue() (in module huntserver.staff_views), 11 R registration() (in module huntserver.info_views), 10 Response (class in huntserver.models), 7 Response.DoesNotExist, 7 Response.MultipleObjectsReturned, 7 S serialize_for_ajax() (huntserver.models.puzzle method), 7 serialize_for_ajax() (huntserver.models.solve method), 7 serialize_for_ajax() (huntserver.models.submission method), 8 23

26 shib_login() (in module huntserver.auth_views), 11 Solve (class in huntserver.models), 7 Solve.DoesNotExist, 7 Solve.MultipleObjectsReturned, 7 Submission (class in huntserver.models), 7 Submission.DoesNotExist, 8 Submission.MultipleObjectsReturned, 8 T Team (class in huntserver.models), 8 Team.DoesNotExist, 8 Team.MultipleObjectsReturned, 8 U Unlock (class in huntserver.models), 8 Unlock.DoesNotExist, 9 Unlock.MultipleObjectsReturned, 9 Unlockable (class in huntserver.models), 9 Unlockable.DoesNotExist, 9 Unlockable.MultipleObjectsReturned, 9 unlockables() (in module huntserver.hunt_views), 10 user_profile() (in module huntserver.info_views), 11 Index 24

Bishop Blanchet Intranet Documentation

Bishop Blanchet Intranet Documentation Bishop Blanchet Intranet Documentation Release 1.0 Luis Naranjo December 11, 2013 Contents 1 What is it? 1 2 LDAP Authentication 3 3 Types of users 5 3.1 Super user................................................

More information

Using GitHub to Share with SparkFun a

Using GitHub to Share with SparkFun a Using GitHub to Share with SparkFun a learn.sparkfun.com tutorial Available online at: http://sfe.io/t52 Contents Introduction Gitting Started Forking a Repository Committing, Pushing and Pulling Syncing

More information

wagtailmenus Documentation

wagtailmenus Documentation wagtailmenus Documentation Release 2.12 Andy Babic Nov 17, 2018 Contents 1 Full index 3 1.1 Overview and key concepts....................................... 3 1.1.1 Better control over top-level menu

More information

For Volunteers An Elvanto Guide

For Volunteers An Elvanto Guide For Volunteers An Elvanto Guide www.elvanto.com Volunteers are what keep churches running! This guide is for volunteers who use Elvanto. If you re in charge of volunteers, why not check out our Volunteer

More information

Building a Django Twilio Programmable Chat Application

Building a Django Twilio Programmable Chat Application Building a Django Twilio Programmable Chat Application twilio.com/blog/08/0/python-django-twilio-programmable-chat-application.html March 7, 08 As a developer, I ve always wanted to include chat capabilities

More information

GOOGLE APPS. If you have difficulty using this program, please contact IT Personnel by phone at

GOOGLE APPS. If you have difficulty using this program, please contact IT Personnel by phone at : GOOGLE APPS Application: Usage: Program Link: Contact: is an electronic collaboration tool. As needed by any staff member http://www.google.com or http://drive.google.com If you have difficulty using

More information

Before you begin, make sure you have the images for these exercises saved in the location where you intend to create the Nuklear Family Website.

Before you begin, make sure you have the images for these exercises saved in the location where you intend to create the Nuklear Family Website. 9 Now it s time to challenge the serious web developers among you. In this section we will create a website that will bring together skills learned in all of the previous exercises. In many sections, rather

More information

Google Docs Tipsheet. ABEL Summer Institute 2009

Google Docs Tipsheet. ABEL Summer Institute 2009 Google Docs Tipsheet ABEL Summer Institute 2009 Contents Logging in to Google Apps for CollaborativeSchools.net for the First Time... 2 Text Documents Creating a New Text Document in Google Docs... 5 Uploading

More information

Table Basics. The structure of an table

Table Basics. The structure of an table TABLE -FRAMESET Table Basics A table is a grid of rows and columns that intersect to form cells. Two different types of cells exist: Table cell that contains data, is created with the A cell that

More information

django-baton Documentation

django-baton Documentation django-baton Documentation Release 1.0.7 abidibo Nov 13, 2017 Contents 1 Features 3 2 Getting started 5 2.1 Installation................................................ 5 2.2 Configuration...............................................

More information

The CHECKBOX Quick Start Guide

The CHECKBOX Quick Start Guide The CHECKBOX Quick Start Guide This guide will provide step-by-step directions in order to help you get started faster with Checkbox. First, Some Basic Concepts The CHECKBOX Survey Lifecycle Create Edit

More information

Get started ASAP! Thank your donors.

Get started ASAP! Thank your donors. Participant Fundraising Tips Get started ASAP! Don't pull an all-nighter and wait until the day before your event to start asking for donations. You'll keep stress at bay and avoid disappointment if you

More information

Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum

Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum Table of Contents Preparation... 3 Exercise 1: Create a repository. Use the command line.... 4 Create a repository...

More information

Quick.JS Documentation

Quick.JS Documentation Quick.JS Documentation Release v0.6.1-beta Michael Krause Jul 22, 2017 Contents 1 Installing and Setting Up 1 1.1 Installation................................................ 1 1.2 Setup...................................................

More information

Website/Blog Admin Using WordPress

Website/Blog Admin Using WordPress Website/Blog Admin Using WordPress Table of Contents How to login... 2 How to get support... 2 About the WordPress dashboard... 3 WordPress pages vs posts... 3 How to add a new blog post... 5 How to edit

More information

nacelle Documentation

nacelle Documentation nacelle Documentation Release 0.4.1 Patrick Carey August 16, 2014 Contents 1 Standing on the shoulders of giants 3 2 Contents 5 2.1 Getting Started.............................................. 5 2.2

More information

Chatter Answers Implementation Guide

Chatter Answers Implementation Guide Chatter Answers Implementation Guide Salesforce, Summer 18 @salesforcedocs Last updated: July 26, 2018 Copyright 2000 2018 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark

More information

FB Image Contest. Users Manual

FB Image Contest. Users Manual FB Image Contest Users Manual Table of contents Description.. 3 Step by step installation... 5 The administration interface.. 10 Creating a new contest... 13 Creating a Facebook Application.. 19 Adding

More information

Xton Access Manager GETTING STARTED GUIDE

Xton Access Manager GETTING STARTED GUIDE Xton Access Manager GETTING STARTED GUIDE XTON TECHNOLOGIES, LLC PHILADELPHIA Copyright 2017. Xton Technologies LLC. Contents Introduction... 2 Technical Support... 2 What is Xton Access Manager?... 3

More information

Set Up and Manage Salesforce Communities

Set Up and Manage Salesforce Communities Set Up and Manage Salesforce Communities Salesforce, Spring 16 @salesforcedocs Last updated: April 28, 2016 Copyright 2000 2016 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark

More information

Vector Issue Tracker and License Manager - Administrator s Guide. Configuring and Maintaining Vector Issue Tracker and License Manager

Vector Issue Tracker and License Manager - Administrator s Guide. Configuring and Maintaining Vector Issue Tracker and License Manager Vector Issue Tracker and License Manager - Administrator s Guide Configuring and Maintaining Vector Issue Tracker and License Manager Copyright Vector Networks Limited, MetaQuest Software Inc. and NetSupport

More information

wagtailmenus Documentation

wagtailmenus Documentation wagtailmenus Documentation Release 2.11 Andy Babic Aug 02, 2018 Contents 1 Full index 3 1.1 Overview and key concepts....................................... 3 1.1.1 Better control over top-level menu

More information

Access your page by hovering over your campus and then choosing Staff Directory. Click on your name to enter your page.

Access your page by hovering over your campus and then choosing Staff Directory. Click on your name to enter your page. LOGIN TO THE WEBSITE Go to www.earlyisd.net and find the Login icon near the top of the page. NOTE: You can find the Login icon on any page of the EISD website. Enter your username (school email address)

More information

Chatter Answers Implementation Guide

Chatter Answers Implementation Guide Chatter Answers Implementation Guide Salesforce, Spring 16 @salesforcedocs Last updated: April 27, 2016 Copyright 2000 2016 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark

More information

django-baton Documentation

django-baton Documentation django-baton Documentation Release 1.3.1 abidibo Nov 05, 2018 Contents 1 Features 3 2 Getting started 5 2.1 Installation................................................ 5 2.2 Configuration...............................................

More information

Django urls Django Girls Tutorial

Django urls Django Girls Tutorial Django urls Django Girls Tutorial about:reader?url=https://tutorial.djangogirls.org/en/django_urls/ 1 di 6 13/11/2017, 20:01 tutorial.djangogirls.org Django urls Django Girls Tutorial DjangoGirls 6-8 minuti

More information

APPENDIX. Using Google Sites. After you read this appendix, you will be able to:

APPENDIX. Using Google Sites. After you read this appendix, you will be able to: APPENDIX B Using Google Sites Objectives After you read this appendix, you will be able to: 1. Create a New Site 2. Manage Your Sites 3. Collaborate on a Shared Site The following Hands-On Exercises will

More information

Web Server Setup Guide

Web Server Setup Guide SelfTaughtCoders.com Web Server Setup Guide How to set up your own computer for web development. Setting Up Your Computer for Web Development Our web server software As we discussed, our web app is comprised

More information

Documentation for the new Self Admin

Documentation for the new Self Admin Documentation for the new Self Admin The following documentation describes the structure of the new Self Admin site along with the purpose of each site section. The improvements that have been made to

More information

CSE 332: Data Structures and Parallelism Autumn 2017 Setting Up Your CSE 332 Environment In this document, we will provide information for setting up Eclipse for CSE 332. The first s ection covers using

More information

FORMS. The Exciting World of Creating RSVPs and Gathering Information with Forms in ClickDimensions. Presented by: John Reamer

FORMS. The Exciting World of Creating RSVPs and Gathering Information with Forms in ClickDimensions. Presented by: John Reamer FORMS The Exciting World of Creating RSVPs and Gathering Information with Forms in ClickDimensions Presented by: John Reamer Creating Forms Forms and Surveys: When and What to Use them For Both Allow you

More information

WordPress Tutorial for Beginners with Step by Step PDF by Stratosphere Digital

WordPress Tutorial for Beginners with Step by Step PDF by Stratosphere Digital WordPress Tutorial for Beginners with Step by Step PDF by Stratosphere Digital This WordPress tutorial for beginners (find the PDF at the bottom of this post) will quickly introduce you to every core WordPress

More information

Getting Around. Welcome Quest. My Fundraising Tools

Getting Around. Welcome Quest. My Fundraising Tools As a registered participant of this event, you have a variety of tools at your fingertips to help you reach your goals! Your fundraising center will be the hub for managing your involvement and fundraising

More information

Good afternoon, everyone. Thanks for joining us today. My name is Paloma Costa and I m the Program Manager of Outreach for the Rural Health Care

Good afternoon, everyone. Thanks for joining us today. My name is Paloma Costa and I m the Program Manager of Outreach for the Rural Health Care Good afternoon, everyone. Thanks for joining us today. My name is Paloma Costa and I m the Program Manager of Outreach for the Rural Health Care program. And I m joined by Carolyn McCornac, also Program

More information

Site Owners: Cascade Basics. May 2017

Site Owners: Cascade Basics. May 2017 Site Owners: Cascade Basics May 2017 Page 2 Logging In & Your Site Logging In Open a browser and enter the following URL (or click this link): http://mordac.itcs.northwestern.edu/ OR http://www.northwestern.edu/cms/

More information

Technical Intro Part 1

Technical Intro Part 1 Technical Intro Part 1 Learn how to create, manage, and publish content with users and groups Hannon Hill Corporation 950 East Paces Ferry Rd Suite 2440, 24 th Floor Atlanta, GA 30326 Tel: 800.407.3540

More information

This Tutorial is for Word 2007 but 2003 instructions are included in [brackets] after of each step.

This Tutorial is for Word 2007 but 2003 instructions are included in [brackets] after of each step. This Tutorial is for Word 2007 but 2003 instructions are included in [brackets] after of each step. Table of Contents Get Organized... 1 Create the Home Page... 1 Save the Home Page as a Word Document...

More information

Static Webpage Development

Static Webpage Development Dear Student, Based upon your enquiry we are pleased to send you the course curriculum for PHP Given below is the brief description for the course you are looking for: - Static Webpage Development Introduction

More information

Administrator Manual. Last Updated: 15 March 2012 Manual Version:

Administrator Manual. Last Updated: 15 March 2012 Manual Version: Administrator Manual Last Updated: 15 March 2012 Manual Version: 1.6 http://www.happyfox.com Copyright Information Under the copyright laws, this manual may not be copied, in whole or in part. Your rights

More information

SwanSim - A Guide to Git / SourceTree / GitLab for Windows

SwanSim - A Guide to Git / SourceTree / GitLab for Windows SwanSim - A Guide to Git / SourceTree / GitLab for Windows Dr Jason W. Jones College of Engineering, Swansea University September 2017 Contents 1 Introduction... 2 2 Obtaining the Software... 3 2.1 Software

More information

release notes effective version 10.3 ( )

release notes effective version 10.3 ( ) Introduction We are pleased to announce that Issuetrak 10.3 is available today! 10.3 focuses on improved security, introducing a new methodology for storing passwords. This document provides a brief outline

More information

FAQs. A guide for school app administrators

FAQs. A guide for school app administrators FAQs A guide for school app administrators Introduction myschoolapp is a simple and cost-effective way to engage with today s mobile parents and carers who run their lives from their phones. It helps you

More information

DIRECTV Message Board

DIRECTV Message Board DIRECTV Message Board DIRECTV Message Board is an exciting new product for commercial customers. It is being shown at DIRECTV Revolution 2012 for the first time, but the Solid Signal team were lucky enough

More information

AGENT123. Full Q&A and Tutorials Table of Contents. Website IDX Agent Gallery Step-by-Step Tutorials

AGENT123. Full Q&A and Tutorials Table of Contents. Website IDX Agent Gallery Step-by-Step Tutorials AGENT123 Full Q&A and Tutorials Table of Contents Website IDX Agent Gallery Step-by-Step Tutorials WEBSITE General 1. How do I log into my website? 2. How do I change the Meta Tags on my website? 3. How

More information

Gunnery Documentation

Gunnery Documentation Gunnery Documentation Release 0.1 Paweł Olejniczak August 18, 2014 Contents 1 Contents 3 1.1 Overview................................................. 3 1.2 Installation................................................

More information

Techniques for Optimizing Reusable Content in LibGuides

Techniques for Optimizing Reusable Content in LibGuides University of Louisville From the SelectedWorks of Terri Holtze April 21, 2017 Techniques for Optimizing Reusable Content in LibGuides Terri Holtze, University of Louisville Available at: https://works.bepress.com/terri-holtze/4/

More information

Administrator Manual. Last Updated: 15 March 2012 Manual Version:

Administrator Manual. Last Updated: 15 March 2012 Manual Version: Administrator Manual Last Updated: 15 March 2012 Manual Version: 1.6 http://www.helpdeskpilot.com Copyright Information Under the copyright laws, this manual may not be copied, in whole or in part. Your

More information

Make Conversations With Customers More Profitable.

Make Conversations With Customers More Profitable. Easy Contact Version 1.65 and up Make Conversations With Customers More Profitable. Overview Easy Contact gives your customers a fast and easy way to ask a question or send you feedback and information.

More information

Website Management with the CMS

Website Management with the CMS Website Management with the CMS In Class Step-by-Step Guidebook Updated 12/22/2010 Quick Reference Links CMS Login http://staging.montgomerycollege.edu/cmslogin.aspx Sample Department Site URLs (staging

More information

New Website User Manual

New Website User Manual New Website User Manual General Notes 3 How To Login To Your Website And Access Admin Dashboard 4 Adding / Editing Sliders 5 Home Slider 5 School Slider (Same steps for ALL school pages) - Add a Slide

More information

Percussion Documentation Table of Contents

Percussion Documentation Table of Contents Percussion Documentation Table of Contents Intro to the Percussion Interface... 2 Logging In to Percussion... 2 The Dashboard... 2 Managing Dashboard Gadgets... 3 The Menu... 4 The Finder... 4 Editor view...

More information

Table of Contents PART 1: ADMINISTRATION... 4 ADMIN LOGIN...5 ADD ADDITIONAL ADMIN USERS...6 EDIT AN EXISTING USER... 6

Table of Contents PART 1: ADMINISTRATION... 4 ADMIN LOGIN...5 ADD ADDITIONAL ADMIN USERS...6 EDIT AN EXISTING USER... 6 Use the step-by-step tutorials below to get the most out of GO Smart. If you are viewing this document in a web browser, you will need to open or download it as a PDF for the Table of Contents and other

More information

Drupal Cloud Getting Started Guide Creating a Lab site with the MIT DLC Theme

Drupal Cloud Getting Started Guide Creating a Lab site with the MIT DLC Theme Introduction Drupal Cloud Getting Started Guide Creating a Lab site with the MIT DLC Theme In this Getting Started Guide, you can follow along as a website is built using the MIT DLC Theme. Whether you

More information

Web Hosting. Important features to consider

Web Hosting. Important features to consider Web Hosting Important features to consider Amount of Storage When choosing your web hosting, one of your primary concerns will obviously be How much data can I store? For most small and medium web sites,

More information

Getting Started Guide

Getting Started Guide Getting Started Guide for education accounts Setup Manual Edition 7 Last updated: September 15th, 2016 Note: Click on File and select Make a copy to save this to your Google Drive, or select Print, to

More information

How To Get Your Word Document. Ready For Your Editor

How To Get Your Word Document. Ready For Your Editor How To Get Your Word Document Ready For Your Editor When your document is ready to send to your editor you ll want to have it set out to look as professional as possible. This isn t just to make it look

More information

HTML and CSS a further introduction

HTML and CSS a further introduction HTML and CSS a further introduction By now you should be familiar with HTML and CSS and what they are, HTML dictates the structure of a page, CSS dictates how it looks. This tutorial will teach you a few

More information

Microsoft Windows SharePoint Services

Microsoft Windows SharePoint Services Microsoft Windows SharePoint Services SITE ADMIN USER TRAINING 1 Introduction What is Microsoft Windows SharePoint Services? Windows SharePoint Services (referred to generically as SharePoint) is a tool

More information

Unified Management Console

Unified Management Console Unified Management Console Transition Guide The unified management console provides the same functionality that the older MailGuard and WebGuard management consoles provided if not more. This guide is

More information

Using Dreamweaver CS6

Using Dreamweaver CS6 Using Dreamweaver CS6 7 Dynamic HTML Dynamic HTML (DHTML) is a term that refers to website that use a combination of HTML, scripting such as JavaScript, CSS and the Document Object Model (DOM). HTML and

More information

CSCI 1100L: Topics in Computing Lab Lab 11: Programming with Scratch

CSCI 1100L: Topics in Computing Lab Lab 11: Programming with Scratch CSCI 1100L: Topics in Computing Lab Lab 11: Programming with Scratch Purpose: We will take a look at programming this week using a language called Scratch. Scratch is a programming language that was developed

More information

Committee Chair Manual for AIA SEATTLE S ONLINE MEMBER COMMUNICATION TOOL. Questions? Contact AIA Seattle s Communications team.

Committee Chair Manual for AIA SEATTLE S ONLINE MEMBER COMMUNICATION TOOL. Questions? Contact AIA Seattle s Communications team. Contents Access to edit aiaseattle.org... 1 Committee Hub Pages... 2 Hub Page Editor... 2 Main Content Block... 2 Featured Image... 3 Files... 3 Events... 5 Recurring Committee Meetings... 8 Posts... 8

More information

Creating Effective School and PTA Websites. Sam Farnsworth Utah PTA Technology Specialist

Creating Effective School and PTA Websites. Sam Farnsworth Utah PTA Technology Specialist Creating Effective School and PTA Websites Sam Farnsworth Utah PTA Technology Specialist sam@utahpta.org Creating Effective School and PTA Websites Prerequisites: (as listed in class description) HTML

More information

mygateway Portal Training for Staff

mygateway Portal Training for Staff mygateway Portal Training for Staff Index What Is A Portal?... 4 Portal Terms... 4 Signing In To Mygateway... 5 Terms in Use... 6 Channels... 7 Remove / Add a Channel... 7 Content Layout... 8 Order of

More information

Biocomputing II Coursework guidance

Biocomputing II Coursework guidance Biocomputing II Coursework guidance I refer to the database layer as DB, the middle (business logic) layer as BL and the front end graphical interface with CGI scripts as (FE). Standardized file headers

More information

PHPRad. PHPRad At a Glance. This tutorial will show you basic functionalities in PHPRad and

PHPRad. PHPRad At a Glance. This tutorial will show you basic functionalities in PHPRad and PHPRad PHPRad At a Glance. This tutorial will show you basic functionalities in PHPRad and Getting Started Creating New Project To create new Project. Just click on the button. Fill In Project properties

More information

SPECIFICATIONS Insert Client Name

SPECIFICATIONS Insert Client Name ESSENTIAL LMS BRANDING SPECIFICATIONS Insert Client Name Creation Date: June 23, 2011 Last Updated: July 11, 2017 Version: 16.5 Page 1 Contents Branding Elements... 3 Theme Management... 3 Header Images...

More information

Mastering phpmyadmiri 3.4 for

Mastering phpmyadmiri 3.4 for Mastering phpmyadmiri 3.4 for Effective MySQL Management A complete guide to getting started with phpmyadmin 3.4 and mastering its features Marc Delisle [ t]open so 1 I community experience c PUBLISHING

More information

5.0 Admin Guide. Remote Request System Admin Guide. Toll Free Phone:

5.0 Admin Guide. Remote Request System Admin Guide.     Toll Free Phone: 5.0 Admin Guide Remote Request System Admin Guide www.goteamworks.com Email: support@goteamworks.com Toll Free Phone: 866-892-0034 Copyright 2012-2013 by TeamWORKS Solutions, Inc. All Rights Reserved Table

More information

EKTRON 101: THE BASICS

EKTRON 101: THE BASICS EKTRON 101: THE BASICS Table of Contents INTRODUCTION... 2 TERMINOLOGY... 2 WHY DO SOME PAGES LOOK DIFFERENT THAN OTHERS?... 5 LOGGING IN... 8 Choosing an edit mode... 10 Edit in context mode (easy editing)...

More information

Creating an with Constant Contact. A step-by-step guide

Creating an  with Constant Contact. A step-by-step guide Creating an Email with Constant Contact A step-by-step guide About this Manual Once your Constant Contact account is established, use this manual as a guide to help you create your email campaign Here

More information

TYPO3 Editing Guide Contents

TYPO3 Editing Guide Contents TYPO3 Editing Guide Contents Introduction... 2 Logging in... 2 Selecting your Workspace for editing... 2 Working with Content Elements... 3 Working in the Editing Window... 4 Pasting content from MS Word

More information

Creating Pages with the CivicPlus System

Creating Pages with the CivicPlus System Creating Pages with the CivicPlus System Getting Started...2 Logging into the Administration Side...2 Icon Glossary...3 Mouse Over Menus...4 Description of Menu Options...4 Creating a Page...5 Menu Item

More information

CSE 332: Data Structures and Parallelism Winter 2019 Setting Up Your CSE 332 Environment

CSE 332: Data Structures and Parallelism Winter 2019 Setting Up Your CSE 332 Environment CSE 332: Data Structures and Parallelism Winter 2019 Setting Up Your CSE 332 Environment This document guides you through setting up Eclipse for CSE 332. The first section covers using gitlab to access

More information

Smart Bulk SMS & Voice SMS Marketing Script with 2-Way Messaging. Quick-Start Manual

Smart Bulk SMS & Voice SMS Marketing Script with 2-Way Messaging. Quick-Start Manual Mobiketa Smart Bulk SMS & Voice SMS Marketing Script with 2-Way Messaging Quick-Start Manual Overview Mobiketa Is a full-featured Bulk SMS and Voice SMS marketing script that gives you control over your

More information

djangotribune Documentation

djangotribune Documentation djangotribune Documentation Release 0.7.9 David THENON Nov 05, 2017 Contents 1 Features 3 2 Links 5 2.1 Contents................................................. 5 2.1.1 Install..............................................

More information

How to set up SQL Source Control The short guide for evaluators

How to set up SQL Source Control The short guide for evaluators GUIDE How to set up SQL Source Control The short guide for evaluators 1 Contents Introduction Team Foundation Server & Subversion setup Git setup Setup without a source control system Making your first

More information

django-session-security Documentation

django-session-security Documentation django-session-security Documentation Release 2.5.1 James Pic Oct 27, 2017 Contents 1 Why not just set the session to expire after X minutes? 3 2 How does it work? 5 3 Requirements 7 4 Resources 9 4.1

More information

OpenProject AdminGuide

OpenProject AdminGuide OpenProject AdminGuide I. Contents I. Contents... 1 II. List of figures... 2 1 Administration... 2 1.1 Manage projects...2 1.2 Manage users...5 1.3 Manage groups...11 1.4 Manage roles and permissions...13

More information

Intro to Github. Jessica Young

Intro to Github. Jessica Young Intro to Github Jessica Young jyoung22@nd.edu GitHub Basics 1. Installing GitHub and Git 2. Connecting Git and GitHub 3. Why use Git? Installing GitHub If you haven t already, create an account on GitHub

More information

BrandingUI (Basic, Advanced, Enterprise) Getting Started - Important First Steps

BrandingUI (Basic, Advanced, Enterprise) Getting Started - Important First Steps BrandingUI (Basic, Advanced, Enterprise) Getting Started - Important First Steps Step 1: Log into your BrandingUI Administrative site https:// yourclientid.brandingui.com/admin-signin.php Use the initial

More information

Sucuri Webinar Q&A HOW TO IDENTIFY AND FIX A HACKED WORDPRESS WEBSITE. Ben Martin - Remediation Team Lead

Sucuri Webinar Q&A HOW TO IDENTIFY AND FIX A HACKED WORDPRESS WEBSITE. Ben Martin - Remediation Team Lead Sucuri Webinar Q&A HOW TO IDENTIFY AND FIX A HACKED WORDPRESS WEBSITE. Ben Martin - Remediation Team Lead 1 Question #1: What is the benefit to spammers for using someone elses UA code and is there a way

More information

Creating a new form with check boxes, drop-down list boxes, and text box fill-ins. Customizing each of the three form fields.

Creating a new form with check boxes, drop-down list boxes, and text box fill-ins. Customizing each of the three form fields. In This Chapter Creating a new form with check boxes, drop-down list boxes, and text box fill-ins. Customizing each of the three form fields. Adding help text to any field to assist users as they fill

More information

penelope case management software AUTHENTICATION GUIDE v4.4 and higher

penelope case management software AUTHENTICATION GUIDE v4.4 and higher penelope case management software AUTHENTICATION GUIDE v4.4 and higher Last modified: August 9, 2016 TABLE OF CONTENTS Authentication: The basics... 4 About authentication... 4 SSO authentication... 4

More information

Adding content to your Blackboard 9.1 class

Adding content to your Blackboard 9.1 class Adding content to your Blackboard 9.1 class There are quite a few options listed when you click the Build Content button in your class, but you ll probably only use a couple of them most of the time. Note

More information

ILM Assessment Portal. Customer Guide

ILM Assessment Portal. Customer Guide ILM Assessment Portal Customer Guide 1 ILM Assessment Portal Customer Guide V1.1 This is a reference guide for the ILM Assessment Portal ( Portal ), ILM s online tool for Centre customers who use the ILM

More information

Login: Quick Guide for Qualtrics May 2018 Training:

Login:   Quick Guide for Qualtrics May 2018 Training: Qualtrics Basics Creating a New Qualtrics Account Note: Anyone with a Purdue career account can create a Qualtrics account. 1. In a Web browser, navigate to purdue.qualtrics.com. 2. Enter your Purdue Career

More information

ONLINE REGISTRATION: A STEP-BY-STEP GUIDE

ONLINE REGISTRATION: A STEP-BY-STEP GUIDE ONLINE REGISTRATION: A STEP-BY-STEP GUIDE We encourage all of our Walkers to register online at diabetes.org/stepout. It s quick. It s easy. And, you ll have the opportunity to take advantage of our online

More information

As part of our commitment to continuously updating and enhancing our fundraising system, we are thrilled to announce our latest enhancements.

As part of our commitment to continuously updating and enhancing our fundraising system, we are thrilled to announce our latest enhancements. As part of our commitment to continuously updating and enhancing our fundraising system, we are thrilled to announce our latest enhancements. Purchase Items during Registration Administrators can now enable

More information

SCHULICH MEDICINE & DENTISTRY Website Updates August 30, Administrative Web Editor Guide v6

SCHULICH MEDICINE & DENTISTRY Website Updates August 30, Administrative Web Editor Guide v6 SCHULICH MEDICINE & DENTISTRY Website Updates August 30, 2012 Administrative Web Editor Guide v6 Table of Contents Chapter 1 Web Anatomy... 1 1.1 What You Need To Know First... 1 1.2 Anatomy of a Home

More information

SharePoint User Manual

SharePoint User Manual SharePoint User Manual Developed By The CCAP SharePoint Team Revision: 10/2009 TABLE OF CONTENTS SECTION 1... 5 ABOUT SHAREPOINT... 5 1. WHAT IS MICROSOFT OFFICE SHAREPOINT SERVER (MOSS OR SHAREPOINT)?...

More information

Table of Contents. 1. Introduction 1. 1 Overview Business Context Glossary...3

Table of Contents. 1. Introduction 1. 1 Overview Business Context Glossary...3 Table of Contents 1. Introduction 1. 1 Overview......2 1. 2 Business Context.. 2 1. 3 Glossary...3 2. General Description 2. 1 Product/System Functions..4 2. 2 User Characteristics and Objectives 4 2.

More information

One of the fundamental kinds of websites that SharePoint 2010 allows

One of the fundamental kinds of websites that SharePoint 2010 allows Chapter 1 Getting to Know Your Team Site In This Chapter Requesting a new team site and opening it in the browser Participating in a team site Changing your team site s home page One of the fundamental

More information

Web Manual: Checkbox Surveys March 2014

Web Manual: Checkbox Surveys March 2014 March 2014 Suite 115, 1665 West Broadway, Vancouver, BC V6J 5A4 T. 1800.665.2262 F. 604.638.2916 www.divisionsbc.ca Table of Contents Getting Started... 3 Survey Checklist... 4 Group & User Management...

More information

Photoshop World 2018

Photoshop World 2018 Photoshop World 2018 Unlocking the Power of Lightroom CC on the Web with Rob Sylvan Learn how to leverage the cloud-based nature of Lightroom CC to share your photos in a way that will give anyone with

More information

Weebly 101. Make an Affordable, Professional Website in Less than an Hour

Weebly 101. Make an Affordable, Professional Website in Less than an Hour Weebly 101 Make an Affordable, Professional Website in Less than an Hour Text Copyright STARTUP UNIVERSITY All Rights Reserved No part of this document or the related files may be reproduced or transmitted

More information

Create and Manage Partner Portals

Create and Manage Partner Portals Create and Manage Partner Portals Salesforce, Summer 18 @salesforcedocs Last updated: June 20, 2018 Copyright 2000 2018 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark of

More information

Table of content. Creating signup form Associating automation tools to signup form Signup form reports...42

Table of content. Creating signup form Associating automation tools to signup form Signup form reports...42 A User Guide Signup forms are the most popular tools for building a subscriber database. They let your website visitors become subscribers by entering basic details such as name and email address. The

More information

SharePoint 2010 Site Owner s Manual by Yvonne M. Harryman

SharePoint 2010 Site Owner s Manual by Yvonne M. Harryman SharePoint 2010 Site Owner s Manual by Yvonne M. Harryman Chapter 9 Copyright 2012 Manning Publications Brief contents PART 1 GETTING STARTED WITH SHAREPOINT 1 1 Leveraging the power of SharePoint 3 2

More information

Azon Master Class. By Ryan Stevenson Guidebook #5 WordPress Usage

Azon Master Class. By Ryan Stevenson   Guidebook #5 WordPress Usage Azon Master Class By Ryan Stevenson https://ryanstevensonplugins.com/ Guidebook #5 WordPress Usage Table of Contents 1. Widget Setup & Usage 2. WordPress Menu System 3. Categories, Posts & Tags 4. WordPress

More information