Skip to content

This repository contains the source of the Web application for submitting and reviewing proposals, and the Web application providing a RESTful API to the schedule data. The conference website is https://conference.accu.org

License

Notifications You must be signed in to change notification settings

abingham/ACCUConf_Submission_Web_Application

 
 

Repository files navigation

Licence Build Status Coverage Status

ACCUConf Web Applications

This repository contains the source of the Web application for submitting and reviewing ACCU conference session proposals, and also the Web application for a personalised schedule for use leading up to and during the conference. The two Web applications are Flask/SQLAlchemy/SQLite applications with a shared data model, and shared utilities.

The submission application:

  1. Allows people to register as users.
  2. Allows registered users to login and submit session proposals.
  3. Allows registered users who are designated reviewers to review the submitted proposals.

The schedule application provides a RESTful API to access the final conference schedule data. The API is designed for the ACCU schedule web application. The API is public so any other application can use it.

The submission application is deployed to https://cfp.conference.accu.org, the schedule application is deployed to https://api.conference.accu.org. The submission applications will only be active during the "call for proposals" of a given year, and the schedule API application will only be available once the schedule is finalised up to the end of the conference for that year.

Contributing

Contributions are welcome from anyone and everyone who believes they have something to contribute.

First step is to clone the repository so as to be able to run the applications. Second step is to make sure all the necessary Python bits and pieces are installed. The files pip_runtime_requirements.txt, pip_test_requirements.txt, and pip_admin_requirements.txt contain lists of the packages required. It may be that your platform has all of these or allows them to be installed. Otherwise the best approach is to use pip to install. Many people will use a virtual environment, in which case:

pip install --upgrade -r pip_runtime_requirements.txt

will install all the packages needed for running the applications. For testing install the test requirements as well. The admin requirements are for using the scaffolded admin interface to work on the database.

Running the submission application is then a matter of executing:

./run_cfp.py

This should set the submission application running on localhost:8000. The state of the application is determined at application start time. The default is the "off" state, so should just put up a "not open" message..

Once set up chip in with issues and, if you willing, pull requests.

These two applications are straightforward, relatively small Flask applications using SQLAlchemy and SQLite. There are the accuconf_cfp and accuconf_api packages which are the two applications, and the models and utils packages which are the shared packages for the two applications. Jinja2 templating is used for rendering.

Tests are pytest ones. Unit tests (exercising the route controllers) are in tests, whilst test_selenium holds the webdriver driven tests.

The current state of the application is determined by a file accuconf_config.py which is not versioned. An example of such a file is:

from models.configuration import CallForProposalsOpen as Config

If this file is not present then the state is ApplicationOff.

Historical note

This is a complete rewrite of the application used for ACCU 2017, based on an evolution of the data model used then.

Licence

This code is licensed under the GNU Public License Version 3.

About

This repository contains the source of the Web application for submitting and reviewing proposals, and the Web application providing a RESTful API to the schedule data. The conference website is https://conference.accu.org

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 68.6%
  • HTML 20.9%
  • JavaScript 9.7%
  • Shell 0.8%