Website for PyCon

Related tags

CMS pycon
Overview

PyCon 2019 Web Site

Built by the Python Community atop the Django web framework.

Rather than use this as the basis for your conference site directly, you should instead look at https://github.com/pinax/symposion which was designed for reuse.

PyCon 2019 is built on top of Pinax Symposion but may have customizations that will just make things more difficult for you.

Installation instructions are in this README. There's more documentation at https://readthedocs.org/projects/pycon/.

Build status for develop branch:

https://travis-ci.org/PyCon/pycon.svg?branch=develop

Running the PyCon site locally

Before you get started, you'll need a Docker environment, and docker-compose available, see https://www.docker.com/community-edition for the easiest way to get that setup for your platform!

Developers can easily run the PyCon web application inside an isolated environemnt by using Docker. Once you have Docker and Docker Compose installed on your computer, simply check out this project from GitHub and spin up the site:

$ git clone https://github.com/PyCon/pycon.git
$ cd pycon
$ make up

On this first call to up that creates the containers, make will go ahead and automatically perform all of the provisioning steps that the application needs. You can later reset the environment using make reset. Bootstrapping may take a few minutes to complete, since it downloads Django and all of the libraries it needs.

When docker-compose finishes, the PyCon application is running with some sample content!

Finally, you should see the development version of the PyCon web site when you visit http://localhost:8000/ in your browser!

Two logins are created during the automated setup!

To login as a Django superuser, use the email address [email protected] and the password None.

To login as a general user, use the email address [email protected] and the password None.

Running the PyCon web site in production

  • You will want to run the application on an Ubuntu 12.04 or 14.04 host.

  • Create a new virtualenv and activate it:

    $ virtualenv env/pycon
    $ . env/pycon/bin/activate
    
  • Install the requirements for running and testing locally:

    $ pip install --trusted-host dist.pinaxproject.com -r requirements/project.txt
    
  • Copy pycon/settings/local.py-example to pycon/settings/local.py.

  • Edit pycon/settings/local.py according to the comments. Note that you will have to edit it; by default everything there is commented out.

  • If you have ssh access to the staging server, copy the database and media:

    $ fab staging get_db_dump:pycon
    $ fab staging get_media
    

    Change pycon in that first command to the name of your local database.

    If you get Postgres authorization errors when trying the get_db_dump, find another developer who has access already and copy the ~/.pgpass file from their account on that server to your own account; it has the userids and passwords for the databases.

  • Otherwise, ask someone for help. We don't have a good way currently to get a new system running from scratch.

  • Create a user account:

    $ ./manage.py createsuperuser
    
  • Edit pycon/settings/local.py to make sure DEBUG=False.

  • Add an appropriate ALLOWED_HOSTS setting (https://docs.djangoproject.com/en/1.5/ref/settings/#std:setting-ALLOWED_HOSTS)

  • Install lessc (Go to http://lesscss.org and search for "Server-side usage")

  • Pre-compress everything by running:

    python manage.py compress --force
    

    That will write compressed css and js files under site_media

  • Gather the static files:

    python manage.py collectstatic --noinput
    
  • Arrange to serve the site_media directory as /2018/site_media/whatever. E.g. site_media/foo.html would be at /2018/site_media/foo.html.

  • Arrange to serve the wsgi application in symposion/wsgi.py at /, running with the same virtualenv (or equivalent). It will only handle URLs starting with /2018 though, so you don't have to pass it any other requests.

To run tests

Tests won't run from /vagrant inside the vagrant system due to shortcomings of the way Vagrant makes the host system's files available there. It's probably simplest to just do development directly on any Ubuntu 14 system.

python manage.py test

or try running make test or tox. (Yes, we have too many ways to run tests.)

Also, Travis (https://travis-ci.org/PyCon/pycon) automatically runs the tests against pull requests.

More documentation

There's more documentation under docs/.

LICENSE

Comments
  • Minor fixups for salt deployment

    Minor fixups for salt deployment

    • Don't blow up on direct calls to os.environ in setting.server
      • The new salt deployment tooling relies less on environment variables, and leans heavily on tempting files onto the file system. This also does away with the IS_PRODUCTION environment variable, so there are other things we can tidy up as well
    • Modify LESS for syntax changes
      • HONESTLY NO IDEA WHAT I'M DOING, just modified to get manage.py compress working.
    • Fixes all fabric tasks to work with new infrastructure
    opened by ewdurbin 18
  • Design Enhancements

    Design Enhancements

    Enhancements the usability, responsiveness, and design of the 2018 site.

    Major Accomplishments

    New responsive and keyboard accessible navigation

    First off, this navigation is totally responsive. Small screens will see a collapsed menu which they can expand to navigate. (I prefer using the word "Menu" over the hamburger icon as it's been shown that users are more likely to click the word "Menu".) pycon-mobile-nav

    On larger screens, the collapsed menu goes away and we see the standard horizontal menu. I changed the functionality of this a bit, so that the dropdown menus appear on click, rather than on hover. The line between hover-capable devices and touch devices is becoming more and more blurred, and so I find it's best to avoid hover functionality as much as possible so that all users are guaranteed the same, working experience. I've included small arrow icons next to each item as a visual clue so users know that these menu items will expand. screenshot 2017-09-05 10 44 52

    The navigation is totally keyboard accessible. You can tab your way through the primary navigation items, hit "return" to open and close dropdowns, and tab through the dropdown items.

    Lastly, we are prepared for situations with no JavaScript. Dropdown navigations typically have to make use of JS, and that's what we're doing here. But in the event that JS is not available, we fall back to a full navigation that is completely styled and usable. It takes up a lot of room, sure, but this is just a fallback that ensures the user can still navigate. screenshot 2017-09-05 10 47 47

    Responsive header graphic

    I updated the home page banner so that the image is responsive and makes use of the screen real estate available. screenshot 2017-09-05 10 52 40 screenshot 2017-09-05 10 53 02

    Other enhancements in the home banner include updated cloud graphics and animation, as well as including the ribbon graphic with the tagline that was in the provided designs. I changed some colors around a bit here. I wasn't sure whether to stay closer to what was already coded on the site or what the provided designs looked like, so I split the difference.

    ~~To Do~~ Done:

    • [x] Responsive, accessible, JS-fallback primary navigation
    • [x] Responsive header graphic
    • [x] New cloud graphics/animation
    • [x] Style buttons, forms, account pages, etc..
    • [x] Double check styles for the logged-in state of the top banner
    • [x] Sticky footer
    • [x] Other general CSS tweaks and responsiveness.

    ^^ Please let me know if there are specifics you'd like added to this list. 💁

    opened by imnikkilee 10
  • Adds support for reviewing proposals in groups.

    Adds support for reviewing proposals in groups.

    In this scheme, each group has it's own start/stop times for leaving speaker comments and doing voting.

    Additional work to come with more utilities for working with groups (e.g. auto-assignment of proposals to groups).

    For now this should be stand-alone though.

    opened by alex 10
  • Refactor settings files

    Refactor settings files

    NOT READY TO MERGE, just looking for feedback. Take a look at pycon/settings/README.rst, try it out locally. Does it seem reasonable? Is it okay to require creation of local_settings.py before anything will work? What else is good or bad about this approach?

    Phase 2 
    opened by dpoirier 9
  • Restyle pycon website to use 2019 branding

    Restyle pycon website to use 2019 branding

    Known issues:

    1. ~Logo not showing on FF~

    2. ~Empty h1 is pushing down content~ Temporary fix pushed. See https://github.com/PyCon/pycon/issues/655 for a better fix

    3. ~password reset page~

    4. ~Check page where user resets password @ewdurbin - how can I access this in dev?~

    ~!!! NOTE: we need to get permission from Mike Pirnat for use of the photo on the homepage !!!~

    opened by nlhkabu 8
  • Job fair participation flag

    Job fair participation flag

    Flag for Job Fair Participation

    Added a job_fair_participant BooleanField on the Sponsor model and make editable in Django Admin.

    screen shot 2018-01-13 at 10 26 53 am screen shot 2018-01-13 at 10 26 34 am

    Auto generate Job Fair Participant/Table Listing

    Dynamically generate an HTML table on the sponsors/jobs page with Sponsor name and their job_fair_table_number if the Sponsor is a job_fair_participant.

    screen shot 2018-01-13 at 10 19 32 am

    Smarter Templates for Sponsor Emails

    Added Django Template functionality to Sponsor.send_email that allows for Django Template logic in Sponsor email sends... Hard to explain 😢

    screen shot 2018-01-13 at 10 22 40 am screen shot 2018-01-13 at 10 25 50 am

    Non Participant:

    screen shot 2018-01-13 at 10 28 40 am

    Participant:

    screen shot 2018-01-13 at 10 28 50 am

    Address #643 #638

    opened by ewdurbin 7
  • add some new flags to speaker profiles!

    add some new flags to speaker profiles!

    Hello @jasonamyers, @lorenanicole, @jackiekazil!

    I'd like to welcome your feedback on collecting some new booleanish fields during creation of speaker profiles.

    Screencap of how this appears as of 5f9b92199ebc8a6e3f9b8eaf69e6169711c14566:

    screen shot 2017-09-24 at 11 48 03 am
    opened by ewdurbin 7
  • API Revamp

    API Revamp

    This is a pull request to make the proposal API better.

    This pull request:

    • Causes the basic information about a proposal to be pulled down when proposal data is requested, as well as API-written data.
    • Replaces the API keys in the URLs. This isn't bank data, but it's just private enough that API keys in open URLs as a security mechanism is insufficient. API keys are now sent in headers, and requests must be signed with a secret key.
    opened by lukesneeringer 7
  • Lightning talks categories are set to

    Lightning talks categories are set to "Testing" - no option to select a category

    When someone proposes a lightning talk, the category is automatically set to "Testing" (viewed from the admin dashboard side). It is also not available to select a category as a submitter. Can we make it available for a submitter to choose?

    opened by econchick 7
  • Nav and CMS Fixes

    Nav and CMS Fixes

    • [ ] Explore better solution for the account bar on desktop sized screens. I made the account bar a full width bar to distinguish it from the other navigation content.
    • [ ] The active nav items' underline extends past the copy. It should end at the last letter of the nav item.
    • [ ] Active nav item adds a bottom border to all it's child LIs. Make sure it's only the main nav LI that gets the bottom border on hover/active.
    • [ ] On the CMS page, the hills image to the left of the breadcrumbs is a little shorter than the breadcrumb container.
    opened by rayt86 5
  • 441 Display social login links

    441 Display social login links

    These were in a sidebar on the login page, but the parent template had dropped the sidebar block. Worked out a way to get the content displayed roughly the same as last year with just changes to the login template and very minimal site.less changes.

    Fixes #441

    opened by dpoirier 5
Owner
PyCon
PyCon
Django e-commerce website with Advanced Features and SEO Friendly

MyTech® - Your Technology Django e-commerce website with Advanced Features and SEO Friendly Images and Prices are only used for Demo purpose and does

null 28 Dec 21, 2022
Repositorio que contiene el material mostrado en la primera PyCON de Chile

Buenas prácticas de desarrollo en Python Repositorio que contiene el material mostrado en la primera PyCON de Chile, realizada del 5 al 7 de Noviembre

Erick Castillo 5 Feb 1, 2022
Presentation and code files for the talk at PyCon Indonesia

pycon-indonesia Presentation and code files for the talk at PyCon Indonesia. Files used for the PyCon Indonesia presentation. [Directory Includes:] Be

Neeraj Pandey 2 Dec 4, 2021
This is a simple website crawler which asks for a website link from the user to crawl and find specific data from the given website address.

This is a simple website crawler which asks for a website link from the user to crawl and find specific data from the given website address.

Faisal Ahmed 1 Jan 10, 2022
NS-LOOKUP - A python script for scanning website for getting ip address of a website

NS-LOOKUP A python script for scanning website for getting ip address of a websi

Spider Anongreyhat 5 Aug 2, 2022
API to retrieve the number of grades on the OGE website (Website listing the grades of students) to know if a new grade is available. If a new grade has been entered, the program sends a notification e-mail with the subject.

OGE-ESIREM-API Introduction API to retrieve the number of grades on the OGE website (Website listing the grades of students) to know if a new grade is

Benjamin Milhet 5 Apr 27, 2022
This is a API/Website to see the attendance recorded in your college website along with how many days you can take days off OR to attend class!!

Bunker-Website This is a GUI version of the Bunker-API along with some visualization charts to see your attendance progress. Website Link Check out th

Mathana Mathav 11 Dec 27, 2022
A static website and blog generator

Nikola, a Static Site and Blog Generator In goes content, out comes a website, ready to deploy. Why Static Websites? Static websites are safer, use fe

Nikola, a static site generator 2.4k Jan 5, 2023
Boltstream Live Video Streaming Website + Backend

Boltstream Self-hosted Live Video Streaming Website + Backend Reference

Ben Wilber 1.7k Dec 28, 2022
changedetection.io - The best and simplest self-hosted website change detection monitoring service

changedetection.io - The best and simplest self-hosted website change detection monitoring service. An alternative to Visualping, Watchtower etc. Designed for simplicity - the main goal is to simply monitor which websites had a text change. Open source web page change detection.

null 7.3k Jan 1, 2023
A declarative website generator designed for high-quality websites, with a focus on easy maintenance and localization.

Grow Grow is a declarative tool for rapidly building, launching, and maintaining high-quality static HTML. Easy installation Jinja template engine Con

Grow 385 Dec 3, 2022
A Python Static Website Generator

Version 0.8.9 Overview Hyde starter kit by merlinrebrovic is a really nice way to get started with hyde. Hyde layout for bootstrap by auzigog is also

Hyde - Static Website Generator 1.6k Jan 1, 2023
a static website generator to make beautiful customizable pictures galleries that tell a story

Prosopopee Prosopopee. Static site generator for your story. Make beautiful customizable pictures galleries that tell a story using a static website g

Bram 259 Dec 19, 2022
An OpenSource crowd-sourced cooking recipes website

An OpenSource crowd-sourced cooking recipes website

null 21 Jul 31, 2022
RSS feed generator website with user friendly interface

RSS feed generator website with user friendly interface

Alexandr Nesterenko 331 Jan 2, 2023
A website application running in Google app engine, deliver rss news to your kindle. generate mobi using python, multilanguages supported.

Readme of english version refers to Readme_EN.md 简介 这是一个运行在Google App Engine(GAE)上的Kindle个人推送服务应用,生成排版精美的杂志模式mobi/epub格式自动每天推送至您的Kindle或其他邮箱。 此应用目前的主要

null 2.6k Jan 6, 2023
Automated download of LANDSAT data from USGS website

LANDSAT-Download It seems USGS has changed the structure of its data, and so far, I have not been able to find the direct links to the products? Help

Olivier Hagolle 197 Dec 30, 2022
Vulnerability Scanner & Auto Exploiter You can use this tool to check the security by finding the vulnerability in your website or you can use this tool to Get Shells

About create a target list or select one target, scans then exploits, done! Vulnnr is a Vulnerability Scanner & Auto Exploiter You can use this tool t

Nano 108 Dec 4, 2021
Checks for Vaccine Availability at your district and notifies you using E-mail, subscribe to our website.

Vaccine Availability Notifier Project Description Checks for Vaccine Availability at your district and notifies you using E-mail every 10 mins. Kindly

Farhan Hai Khan 19 Jun 3, 2021
Find the remote website version based on a git repository

versionshaker Versionshaker is a tool to find a remote website version based on a git repository This tool will help you to find the website version o

Orange Cyberdefense 110 Oct 23, 2022