Giter VIP home page Giter VIP logo

meetpy's Introduction

Meetpy

Build Status

Meetpy website - this is a shared website along polish Python meetup groups.

For example:

Local install and setup

Manual installation on linux

Before the next step, be sure the following OS libraries are installed:

  • g++
  • libjpeg-dev
  • zlib-dev
  • python-dev

You can run provision-new-dev-env.sh on your dev environment โ€“ it will create everything necessary (using virtualenv) for basic development.

Docker

Alternatively you can use Docker and Docker Compose. They will setup a container with meetpy Django app (available at http://localhost:18000), a Postgres database with a PhpPgAdmin interface (available at http://localhost:8082) and a mock of SMTP service (available at http://localhost:8081).

For docker:

  • docker-compose -f docker-compose-dev.yml up
  • docker-compose -f docker-compose-dev.yml exec meetpy python manage.py migrate

NOTE

Tested on:

  • docker versions 18.09.7 and 19.03.2
  • docker-compose version 1.24.1

Consult https://docs.docker.com/install/ and https://docs.docker.com/compose/install/ for instructions how to install docker.

For more info read the provision-new-dev-env.sh, docker-compose-dev.yml or ask us on slack:

https://pykonik.slack.com/ or https://join-slack.pykonik.org/

Contributing

  1. Make a fork of https://github.com/meetpy/meetpy
  2. Make changes in your fork (ideally on a feature/bugfix branch)
  3. Make sure your branch is based on latest upstream/master (git fetch upstream) (provision-new-dev-envirionment.sh adds meetpy/meetpy as upstream)
  4. Push your changes.
  5. Create a pull request to meetpy/meetpy, targeting master.

New group

  1. Copy meetpy.settings.group_constants.constants.default.yaml to meetpy.settings.group_constants.constants.<meetup_name>.yaml
  2. Fill in the data for your group.
  3. In case you need different templates, create templates/<group_name> directory and put any templates you'd like.
  4. Execute with MEETUP_NAME=<group_name> command

meetpy's People

Contributors

artcz avatar czotomo avatar dependabot[bot] avatar fenris85 avatar galuszkak avatar gandi24 avatar gbdlin avatar haxoza avatar ivellios avatar jareks avatar konradhalas avatar krokjoanna avatar luczynskidar avatar mattblack85 avatar ofideveloper avatar olga-black avatar overfl0 avatar pbetkier avatar pgrzesik avatar pro99matt avatar viciu avatar wmalinowski avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

meetpy's Issues

Create API exposing meetings

Sometimes it's useful to be able to easily pass meetings to another tool (like a script generating OBS scenes for example).

We need API that will expose:

  • All fields in a meetup with all dependent models
  • List of all meetups
  • List of upcoming/current meetups ordered from the closest/current one to one further in the future.

Migrate to poetry

Poetry will allow for easier pypi distribution and dependencies management

Fix talk proposal description in admin

Currently the Proposal information does not include basic info that's store in Talk, therefore it's hard to see what the proposal is about.

Steps to reproduce:

  1. Visit TalkProposal section in django admin (/admin/meetups/talkproposal/)
  2. Click on any talk.
  3. See the problem. :)

Proposed solution:

  • Include more information in the TalkProposal page (maybe include entire Talk r/o)
  • include link to the talk
  • Drop TalkProposal section and make proposals more visible in the Talk section.

Add old meetups to the homepage.

Currently if there is no "current" meetup, the homepage looks a bit empty (see the picture)

image

It probably makes sense to show some of the previous meetups (or at least show more explicit link to previous meetups) in the absence of a current meetup.

Add special non-talk entries to the agenda

Agenda currently only allows for talks. It would be nice to add lightning talks or afterparty to the agenda, so it's visible from one place.

That probably requires a separate through model to be added between talks and meetups, that would own the talk order etc, but the talk portion of it would be optional and possibly replaced by a custom entry.

Alternatively, lightning talks can be treated as normal talk (as a whole), but there should be a way to add them without any speaker assigned.

Make deployment easier

  • docker-compose
  • off the shelf nginx image โ€“ we only need to maintain our own image.
  • media files could be set up using volumes

Option to add talk without speakers

There are several occasions when you want to add some "special" talk that doesn't have any speakers assigned, for example Lightning Talks on pykonik (so you can have it in agenda and after meetup you are able to add video recording of it).

Add linters

Add linters:

  • Black
  • Isort
  • Ruff or flake8
  • Fawltydeps
  • (optional) mypy or pyright

Add ability to create a draft of a meeting

We need a way to prepare and preview meetings before they are published live on the website. A simple checkbox "is published" should be enough. Meeting should be excluded from the list and landing page, but still should be reachable by the direct URL.

Add estimated time and length to agenda entries

Requires #101

Add a way to describe when an entry in agenda starts and ends, so the full agenda with hour marks can be defined in meetpy and possibly extracted to other social media.

Probably a duration should be enough, as the actual hour marks can be extracted from the meeting start time and duration of previous agenda items.

Generate facebook banners

An internal endpoint that would generate speakers photo + talk name + pykonik logo all in facebook format, so we can copy-paste as photos to posts on facebook.

Add many to many through relation for sponsors

Each sponsor can sponsor different things for different meetups. Sponsor description is one thing, we should enable adding a comment about what they're sponsoring at specific meetup.

Add field in meeting for video/live stream URL

Currently it is only possible to add videos to specific talks, not to the whole meeting. Having such field for the whole meeting would be handy for livestreams, especially when they are not chopped into separate videos containing only specific talks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.