Another web-based convention scheduling system

Overview

PlanZ (aka Zambia)

PlanZ Logo

Convention scheduling tool originally developed for Arisia. Now used by several other conventions. PlanZ tracks sessions (events, panels, and anything that needs to be scheduled), participants, and rooms. PlanZ was originally Zambia, but many changes have been made away from the original code and so a new name was desired.

Features

  • Track sessions, rooms, and participants
  • Comprehensive conflict checking
  • Participants log in to enter availability, provide biography, etc.
  • Reports for various departments such as technical services and hotel liaison

Requirements

  • PHP 7.1 or greater (Tested on 7.2)
    • XSLT library
    • Multibyte library (mbstring)
  • Apache (Should be able to run on other web servers than can handle PHP and MySQL, but not tested)
  • MySQL (Tested on 5.6 & 8.0)
  • SMTP connection for use as mail relay (only if you want to send email from PlanZ)
    • Note: many hosts limit use of their mail relays in ways not compatible with PlanZ
  • The participant photo upload option requires the PHP extension GD library

Built In Dependencies

These libraries are included in the repo and should just work if you leave as is

  • Client Side
    • Bootstrap 2.3.2
    • Bootstrap 4.5.0
    • Bootstrap Multiselect 1.1.7
    • Choices 9.0.0
    • Croppie 2.6.5
    • DataTables 1.10.16
    • JQuery 1.7.2
    • JQuery 3.5.1
    • JQueryUI 1.8.16
    • ParseCSV 0.4.3 beta
    • Tabulator 4.9.3
    • TinyMCE 5.6.2
  • Server Side
    • Swift mailer 5.4.8
    • Guzzle 6.5.3

Integrations

Other software which can work with PlanZ:

More Information

Installation

Are you trying to install PlanZ? Check out the installation notes.

Documentation

Check out the wiki to review the original version of this code.

Comments
  • Issue with Show Bio button at bottom of Assign Participant screen

    Issue with Show Bio button at bottom of Assign Participant screen

    I am having an issue with the "Show Bio" button at the bottom of the Assign Participant screen. File: StaffAssignParticipants.php

    I pull up a session. I then pull up a person who has a bio and nothing happens when I click the button. No error in the console, no error I can see. I checked on my old version of Zambia that we used for Capricon and it works fine. image

    Can others replicate the issue? Any ideas?

    opened by LVerhulst4321 16
  • Custom login

    Custom login

    Add code to allow a custom login method.

    PlanZ for Capricon is set up to allow people to login using their Capricon account that is set up by Capricon's registration. This means that code to connect to the reg system needs to be called.

    I wanted to abstract this out a bit so that other groups could do something similar using their own system.

    opened by LVerhulst4321 11
  • Address Issue #82 : retool the Brainstorm function to remove WisCon-specific references

    Address Issue #82 : retool the Brainstorm function to remove WisCon-specific references

    I've revised the Brainstorm function, bringing the React code into our main React app. This has the effect of making the Brainstorm tool into something that is no longer a stand-alone app. Thus, the header, favicon, footer, and menubar are all managed in the typeical PlanZ way.

    That changes the look and feel, but not too dramatically. Nonetheless, the end result is a bit more unified with the rest of the application.

    Screen Shot 2022-09-24 at 2 07 40 PM

    The sidebar text is fetched from the CustomText table; I've populated this with a default message.

    opened by bcholmes 8
  • Support Scheduling Volunteer Shifts

    Support Scheduling Volunteer Shifts

    This PR implements volunteer shift support to PlanZ.

    I think there's meaningful overlap between the idea of "program scheduling" and "volunteer scheduling": both deal with people, times, etc. At a con, it's often fruitful to consider when someone's volunteer schedule conflicts with their panel schedule. (I also intend to show both types of data in the WisCon mobile app -- a long-standing request is that the mobile app help with reminding folks of their volunteer shifts).

    Importantly, this PR introduces two screens that are implemented in React. The React code must be built (see instructions in the client directory) and the resulting .js deployed to your web server.

    The functionality is implemented using two additional stages: Volunteer Set-up and Volunteer Sign-up. I haven't bothered with a variable in the db_name file: my thinking is that you can exclude volunteer functionality by simply not turning on those phases.

    Volunteer set up involves setting up two pieces of data -- jobs and shifts -- like so: Screen Shot 2022-04-08 at 5 50 35 PM

    During the Volunteer sign-up, members can add a shift to their schedule, like so:

    Screen Shot 2022-04-08 at 5 50 52 PM Screen Shot 2022-04-08 at 5 50 59 PM

    Lastly, there's a report of the sign-ups: Screen Shot 2022-04-08 at 5 54 40 PM

    I've build the Rest endpoints using a more OO programming style, per James' discussions in the Discussions area. I've also tried to follow the new DB standards.

    opened by bcholmes 8
  • Participant social media links

    Participant social media links

    I would like to add a participant's social media links to the db and allow the participant to fill out these fields.

    I am considering adding the fields to the ParticipantDetails table. Or I could do a separate table.

    Fields I am thinking to add: facebook_link instagram_link linkedin_link tiktok_link twitch_link twitter_link website_link youtube_link other_link

    I am also considering where to allow the participant to enter the values. I could modify the profile page and add a section for the links. (I like this best.) Or I could add a separate page. Or I could modify the personal details page, but it's currently labeled as "Optional Demographic Details", which would need to be changed.

    Thoughts?

    opened by LVerhulst4321 7
  • Wiscon branding on Brainstorm

    Wiscon branding on Brainstorm "Submit a session".

    There are several places that Wiscon branding is present on the Brainstorming page.

    Things that are working at present:

    • Correct site logo from theme displayed in header.
    • "Submissions are open for programming for ."

    Things that need improving:

    • Favicon currently has Wiscon logo. Would be nice if also could take the site theme one. Presumably the same mechanism used for the header logo should work.
    • Navigation bar has Wiscon links hard coded. I think this is already available to app, so hopefully this can be added to navigation bar.
    • Footer bar has "site maintained by SF3..." hard coded. It would be good if this text could either be defined in db_name or CustomText.
    • Sidebar "What are we looking for? WisCon...". Ideally this should be coming from CustomText.
    • Page <title> currently hard coded to "WisCon Panel Idea Submission/Brainstorm".

    I'm hosting several convention PlanZ sites (although only one is using Brainstorming so far). It would make my life easier if I can deploy one Brainstorming "build", and have customisation through settings/tables.

    opened by lostcarpark 6
  • First stab at a standards doc for databse entities.

    First stab at a standards doc for databse entities.

    I want to suggest naming standards for DB objects.

    This is a starting point for discussion, so feel free to add or change, or if you have different preference please specify. I'm not too particular on what the standard should be, just that we agree one and follow it consistently.

    I also think that now would be a good time to start a refactoring effort, before PlanZ is in use by a lot of conventions.

    opened by lostcarpark 5
  • Search session filters not working

    Search session filters not working

    I've found that the Search Sessions page is not filtering the sessions as requested. For example, when the Track of Literature is selected, all sessions are still being displayed. I've done a little bit of review, but don't see any reason why this is happening. I was wondering if any else is seeing this issue?

    opened by LVerhulst4321 4
  • Add tables needed for Brainstorming to configuration table editor

    Add tables needed for Brainstorming to configuration table editor

    This change adds the following tables to the Configuration Table Editor:

    • perennial_con_info
    • con_info
    • con_key_dates

    The change adds permission atoms for each table.

    It also adds the display_order column to all three tables to enable editing.

    Adds a foreign key to con_id on the con_key_dates table.

    opened by lostcarpark 4
  • Make config editor use first varchar column if no 'name' column

    Make config editor use first varchar column if no 'name' column

    Added an extra function, lookupVarcharColumn, to the config editor to return the first column of type "varchar" on the table. If no column ends with "name" , lookupNameColumn will return null, this function gets called instead. This should make the configuration editor more flexible, and removes the need for anyone adding a new reference table to understand that it must have a column ending in "name".

    opened by lostcarpark 4
  • Issue with new naming spec and config table editor

    Issue with new naming spec and config table editor

    I have discovered that there is a bit of an issue between our new naming conventions for tables and with the config table editor. The config table editor has specific code regarding tables that have references to other tables (like RoomHasSet). Our new naming conventions doesn't follow the usual Zambia naming conventions and so the config table editor doesn't work for any new tables with references. As best as I can tell.

    I would appreciate it if someone else can check this out and verify what I am thinking is the issue.

    I've made a new branch available called: adjust-public-grid-report The public grid report is something that I created years ago for Capricon and then shoehorned in for Zambia. It is not pretty, but is functional. I'm working (slowly) on making it better. Anyway, I had added a field in the Rooms table for divisionid, but I have decided to do something different. I've made a table called room_report_group to identify a "report group" and then a table called room_report_group_has_room to link a set of rooms to a report group. After updating the config table editor code, I find that I get an error when trying to edit the room_report_group_has_room table and I believe it's due to the naming convention differences.

    opened by LVerhulst4321 4
  • make volunteer shifts con-specific

    make volunteer shifts con-specific

    Volunteer shifts are, of course, very con-specific (i.e.: people sign up for a shift at this year's con; that doesn't mean that they also volunteer for the same shift the next year). Conveniently, the volunteer shift table includes a full date (rather than, for example, the Session practice of specifying a time offset). But to make it easier to clearly specify a particular con, I've now linked the volunteer_shift table with the con_info table.

    One consequence of this change is that the con_info table must be populated to use volunteer shifts.

    This is an exclusively server-side with changes in:

    • the database;
    • the volunteer REST API implementation; and
    • the volunteer report.
    opened by bcholmes 0
  • Configuration Table Editor does not display if linked table empty

    Configuration Table Editor does not display if linked table empty

    The configuration table editor uses foreign keys to populate reference table drop-downs. However, if a referenced (parent) table is empty, the linking (child) table will not display in the configuration table editor. This is fairly reasonable behaviour, since it won't be possible to add rows to the child table until the parent table is populated. However, currently no error message is displayed, so it isn't obvious why the table isn't displaying. This problem could be largely avoided by ensuring there is at least one sample row in all referenced tables. However, in the long term we should try adding logic to display a message such as "You cannot edit table X until table Y has been populated."

    opened by lostcarpark 0
  • Add feeds of program data for OBS software

    Add feeds of program data for OBS software

    Several conventions I'm involved with have used program data to for streaming of virtual/hybrid program, and for displaying future program items on room projector. These take a JSON feed, and are very close to the KonOpas/ConClár feeds. I would like to add optional OBS feeds to the KonOpas/ConClár exports, with configuration settings to control them.

    opened by lostcarpark 1
  • Add Configuration Page

    Add Configuration Page

    I've been working on a page for editing the site configuration.

    On load it carries out the following steps:

    • Verifies the user has admin permission.
    • Reads the db_name_sample.php file.
    • Parses the file, separating any lines before the first define.
    • Displays a HTML table listing the setting name, the default value (from sample file), the current live value (from the current active constants), and any comments following.

    When Save pressed to save changes, it also carries out the following steps:

    • Load the current live db_name.php to get the initial lines before the first define.
    • Copy the current live settings to db_name_backup_N.php where N increments by 1.
    • Save the prefix lines from the form submitted values with names and comments from sample file to a temporary file.
    • Rename temporary file to db_name.php.
    • Catch and display any errors when saving.

    I'm not quite ready to open a pull request, but I've uploaded the current version to a branch: https://github.com/lostcarpark/PlanZ/tree/ConfigSettings

    I'd appreciate if anyone could try it out and provide feedback.

    Overall, I'm very happy with how well it works, and it gives admin users the ability to edit configuration without needing to edit the file directly, without needing access to the webserver back end.

    Some considerations:

    • Currently anyone with the Administrator role can access the page. It may be preferable to create a new privilege so access can be taken away, as not all sites may want to use it.
    • Any custom defines not in the sample file will not be retained. This is deliberate, as I feel keeping the sample file in step with the active one is crucial, but if sites are using custom settings, it could cause problems.
    • The form does not use an XML template. Adding one would add significant development effort for little gain.
    • There is not much validation of the submitted form values at present, as it's assumed it will only be used by trusted administrators. It may be worth adding some additional checks.
    • At present the type of the setting is inferred from its value. We may want to add support for additional types, or add more explicit typing, perhaps using the comments.
    • I prepare messages when saving the file. However, due to the page redirect, these never get displayed. It would be nice to find a way to display the message after the page reload.
    opened by lostcarpark 9
Owner
null
ViMbAdmin project provides a web based virtual mailbox administration system to allow mail administrators to easily manage domains, mailboxes and aliases.

ViMbAdmin project (vim-be-admin) provides a web based virtual mailbox administration system to allow mail administrators to easily manage domains, mailboxes and aliases.

Open Solutions 464 Jan 1, 2023
TinyFileManager is web based file manager and it is a simple, fast and small file manager with a single file, multi-language ready web application

TinyFileManager is web based file manager and it is a simple, fast and small file manager with a single file, multi-language ready web application for storing, uploading, editing and managing files and folders online via web browser. The Application runs on PHP 5.5+, It allows the creation of multiple users and each user can have its own directory and a build-in support for managing text files with cloud9 IDE and it supports syntax highlighting for over 150+ languages and over 35+ themes.

Prasath Mani 3.5k Jan 7, 2023
A simple helpdesk tickets system for Laravel 5.1+ which integrates smoothly with Laravel default users and auth system

A simple helpdesk tickets system for Laravel 5.1+ which integrates smoothly with Laravel default users and auth system, demo is available at: http://ticketit.kordy.info/tickets

Ahmed Kordy 857 Dec 30, 2022
Laravel-Library-Management-system is nice to management library system...

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Eng Hasan Hajjar 2 Sep 30, 2022
LibreNMS is an auto-discovering PHP/MySQL/SNMP based network monitoring system

LibreNMS is an auto-discovering PHP/MySQL/SNMP based network monitoring which includes support for a wide range of network hardware and operating systems including Cisco, Linux, FreeBSD, Juniper, Brocade, Foundry, HP and many more.

LibreNMS Project 3k Dec 30, 2022
CocoPass is a password management system based on Laravel5.3.

CocoPass is a password management system based on Laravel5.3. You can safely and easily store your password here. If course, it is the first version.

Poria 14 Sep 28, 2021
A Computer Vision based speed monitoring system.

A Computer Vision based speed monitoring system. This project is developed as the submission for Smart City Hackathon 2021

Veeramanohar 1 Jun 15, 2022
DMS is Document Managemen System application based on Laravel Framework.

About Document Management System DMS is Document Managemen System application based on Laravel Framework. How to Install Via Composser 1. Go to your g

Nasleem 2 Nov 27, 2021
A MySQL-PHP based hotel reservation system

hotel-reservation-system A MySQL-PHP based hotel reservation system We have created a Hotel Reservation system, which can be used by the Hotel clients

null 3 Dec 8, 2021
Web survey system

SurveyPortal Web survey system Additional Context This project focuses on the server-side – the dynamic use of data and database, with the use of PHP

Ryan Aristosa 3 Jan 27, 2022
Ressource Management and Manufacturing execution system Web for industry (sheet metal, machining, mold ...)

WEB ERP MES Ressource and Manufacturing execution system Web WEM is a business management web application using Laravel 8 and bootstrap 4.6. Why WEM ?

null 28 Dec 30, 2022
MOFHY Lite is a free web hosting management system to manage MOFH hosting accounts and SSL certificates.

MOFHY Lite is a free of cost MOFH clientarea for account management and support services with free ssl service. It have easy to use feature

Mahtab Hassan 17 Dec 8, 2022
Open Source Voucher Management System is a web application for manage voucher. used PHP with Laravel Framework and use MySQL for Database.

Voucher Management System is a web application for manage voucher. You can create and manage your voucher. Voucher Management System is used PHP with Laravel Framework and use MySQL for Database.

Artha Nugraha Jonar 34 Sep 17, 2022
MOFHY Lite is a free web hosting management system to manage MOFH hosting accounts and SSL certificates.

MOFHY Lite MOFHY LITE is a priceless MyOwnFreeHost Client Area for account management, ticket support system and a free ssl service. It has easy to us

Santiago Rodríguez 6 Dec 28, 2021
A simple PHP web system for managing an Supermarket.

#Supermarket Management System A simple PHP web system for managing an Supermarket. Installation Clone the repository and move the root folder to the

Navin Gohite 2 Feb 9, 2022
All in one ban system web (light version for all)

All in one - Ban system web (light version) All in one ban system web (light version for all) This database of players who violate or use third-party

Awesomium Team LLC 1 May 3, 2022
A Employee Management System Web App

This is a Employees Management Web App. Installation Fork, clone or download this repository. Run composer install if it's the initial setup or compos

Maneesh Prashanth 3 Aug 20, 2022
Web Based, Cloud IDE

Codiad Web IDE Codiad is a web-based IDE framework with a small footprint and minimal requirements. Codiad was built with simplicity in mind, allowing

Codiad IDE 2.8k Dec 30, 2022
Koel is a simple web-based personal audio streaming service written in Vue and Laravel

Koel (also stylized as koel, with a lowercase k) is a simple web-based personal audio streaming service written in Vue on the client side and Laravel on the server side. Targeting web developers, Koel embraces some of the more modern web technologies – CSS grid, audio, and drag-and-drop API to name a few – to do its job.

Koel 14.3k Jan 4, 2023