Giter Club home page Giter Club logo

openparty's Introduction

Build Status Build Status Requirements Status

OpenParty (Unconference Community website)

This repository stores the OpenParty website.

Installation

To get setup with OpenParty code you must have the follow installed:

  • Python 3
  • Pipenv
  • MySQL

Setting up environment

pyenv install 3.9
pip install pipenv
pipenv --python 3.9
pipenv shell
pipevn install

Setting up the database

This will vary for production and development. By default the project is set up to run on a SQLite database. If you are setting up a production database see the Configuration section below for where to place settings and get the database running. Now you can run:

pipenv shell
(openparty)$ python manage.py migrate --fake-initial

Install pre-commit hook

First time pre-commit install which will install a git commit hook.

Manually check file format pre-commit run --all-files.

Update pre-commit hook's version pre-commit autoupdate.

Running a web server

In development you should run:

(openparty)$ python manage.py runserver

Deploy it

If you are deploying on ubuntu, you may install those build dependencies.

sudo aptitude install libmysqlclient-dev libxml2-dev libxslt1-dev

Install those python libs through virtual env.

sudo easy_install -U pip
sudo pip install virtualenv
sudo mkdir /usr/local/virtualenv
cd /usr/local/virtualenv
sudo virtualenv --distribute --no-site-packages openparty
source /usr/local/virtualenv/openparty/bin/activate
cd PROJECT_FOLDER

sudo su -
source /usr/local/virtualenv/openparty/bin/activate
pip install -r requirements.txt

openparty's People

Contributors

cnborn avatar icyleaf avatar loddit avatar makestory avatar qingfeng avatar tin avatar tonyseek avatar twinsant avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openparty's Issues

to do:忽悠一个设计师加入

目前我们原型有了,首页、活动页、话题页、活动列表页、话题列表页。

上次我们讨论,比较迫切的需求是邀请一位设计师,将网站整体做视觉上的设计优化。

我来忽悠一个原来的同事—— 目前在阿里工作的设计师,看看能否加入。

其他同学麻烦也留意身边的设计师:)

ps: @清风 老师可以尝试从厂里忽悠一些设计师 (@tifa 时间上不靠谱)

自动化 provisioning 过程?

为什么这么做?

我们有 fabric 帮我们做自动化任务。但是对于部署一个 linux 环境,我们还有大量的手动过程,我们在一些文档里面有所记录,但是还没有自动化。

我希望我们能够使用类似 Saltstack 去解决 provisioning 的过程。当然,如果我们希望使用 docker 去解决 provisioning + config management 那也很好,不过我想那会事一个比较大的工程。

自动化这个过程后,部署将会是一个完全自动化的过程。我们就可以相对低廉的迁移我们的部署到不同的 VPS/Cloud provider 去。比如,从 linode 迁移到 digitalOcean 就会变得简单。如果其它地方准备使用我们的代码部署一个 unconference 也会变得简单很多。

什么是 provisioning?

OpenParty 部署的自动化分两部分:

  • Provisioning: 拿到一个 VPS,创建一个可用的 linux 环境并且安装系统级别的依赖的过程。这个一般通过 puppet, chef 实现。我觉得我们可以考虑 saltstack,目前在 python 社区比较流行。
  • deployment automation:这个我们目前的 fabric 脚本已经实现了自动化。包括 python 的 virtualenv 的建立,代码更新创建目录 + symlink,更新 virtualenv,重启服务。当然我们可以根据 provisioning 的自动化情况调整 fabric 负责的任务。

参考

修改关于页面的部分文字和头像链接

OpenParty 历史详细描述链接无效

http://www.beijing-open-party.org/index.php/category/beijingopenparty

另外导航菜单blog点击没有反映,curl 抓取头信息好长时间才报 504 错误,因此上面的链接还没有办法转换成 blog 的地址

统一组织者头像的存储路径

前面的几个人的个性头像是存在 Google Docs ,而后面却存在项目代码里面...是否需要统一下?

本想修正下的这个问题,发现没有项目的权限...

话题资料的上传

  1. 组织方拥有的活动资料:现场照片、视频等
  2. 话题贡献者拥有的话题资料:Slides、参考资料、代码等

这些资料都需要地方去上传。上传的入口可以是:

  1. 组织方作为管理员和话题贡献者拥有高权限,他们可以在话题页看到上传入口
  2. 贡献者可以上传,也可以删除自己的上传
  3. 组织方作为高级管理员拥有最高权限,可以上传、删除所有资料

staff邮件退信问题

两天前我给staff@...发信的时候收到了两次退信,后来再发的时候正常了,不知到setting.py里的设置是不是还有问题,在这提一下。

登录后可以直接免去长表单填写就完成报名

现状:点击报名按钮后,需要填写超长表单,才可以完成报名
期待:登录后,点击报名按钮,不会看到表单页,页面上方出现一条成功报名的反馈(已有),原来的报名按钮变成“已报名”,并 disable 掉(比如底色变成灰色)
目的:简化报名流程,提升报名成功率。现在的流程太长了,而且那些信息完全没有填写的必要。

话题页面增加 slide 和 video 的支持

因话题是由用户或管理员添加,为了方面活动后话题的分享和 slide 的传播,需要增加 slide 字段并在页面提供显示。另外如果对于有录像的视频,也可以附加到话题页面。

活动详情页改版

目标:重新组织信息,更高效地展示重要信息:时间、地点等必备信息,报名、提交话题、分享等重要按钮,话题列表。

替换掉 pythonbrew

我们生产环境使用 pythonbrew 管理 python executable 和 virtualenv,但是 pythonbrew 已经不维护了。我希望我们能够迁移到 pyenv,以后还可以迁移到 python 3k……

这个 issue 本身可能依赖 provisioning 的过程,如果我们可以自动化 pyenv 的创建过程,啊呢么我们就可以创建一个环境迁移现在的部署过去。然后我们删掉目前基于 pythonbrew 的这个部署就可以了。

把所有ifequal改為if

因為已經升級到了最新版本的django,所以可以把模板內所有的ifequal改為if xxx == yyy了,這個可以作為OP Workshop的一個小題目,方便入手,難度又很低,唯一可以增加條件的就是增補一些Unittest

话题提交者默认报名

现状:报名参与和提交话题是两个独立的动作
期待:报名参与了不一定会提交话题,但是提交了话题一定会参与
目的:逻辑上更合理,数字会更准确

给话题增加标签

背景和目的

目前话题的组织形式只有“活动”,即时间角度的组织,而活动的生命周期特别短,活动本身也是没有实质“精神”的。如果话题只靠活动的组织,单一且受限。
我们希望话题有更强的生命力,即便在活动结束后、话题分享后,也依然能够因为它本身的价值,获得传播和消费。
我认为从话题内容的角度去重新组织它们,是一种帮助人们发现、传播、认识它们的方法之一。所以想到了分类、标签这种方法。

方案

每个话题可以贴上 n 个标签;每个标签下组织了相关的所有话题。

具体功能

  1. 话题被提交的时候允许贡献者输入若干个标签:增删该
  2. 管理员可以干涉某话题的标签:增删改
  3. 标签字段在话题信息中被展示:话题详情页、活动下的话题列表中、话题列表页、话题编辑页
  4. 点击标签可以看到这个标签下的活动 list 页
  5. 有地方可以看到所有标签
  6. 未来可以根据标签来推荐同类话题

增加第三方登录

目标:让流程轻便。

本期可以先接的第三方:微博,豆瓣
【疑问】我们现在来自这两个渠道的用户和参与者有多少,有统计数据吗?
在注册和登录页都增加 icon 作为登录入口
第三方账号授权的流程和方法,参照网站一般做法,登录后显示其在第三方的昵称(和头像)作为用户可见的“身份”
主动注册后直接变成登录状态,并显示填写的昵称(若有)。

请话题提交者提供更多他个人的信息

目的:

  1. 话题提交者需要在话题页有展示,一方面是对话题提交者的尊重和宣传,另一方面也可以帮助大家更好地了解话题,决定有没有兴趣。
  2. 对于活动组织者而言,也可以更好地和话题提交者保持联系,方便审核和组织。

现状:话题页中没有;活动组织者也无法确保知道提交者的联系方式。

期待:(从最小方案开始)

  1. 提交话题的表单,可以增加话题提交者一些信息的表单,粗暴点,可以直接用这个表单 http://www.beijing-open-party.org/event/join 选填。
  2. 在话题页对提交者有所展示(在话题页改版中包括)
  3. ……

话题页改版

Uploading OpenParty-TopicProfile.pdf . . .
目标:承载和呈现更多内容形式,让有后续生命力。

基本话题信息:tag → 可以以后加这个字段
话题贡献者,需要有一定的展示
话题进行的情况:现场的照片、视频,相关的文章、slides 等
对话题的反馈:感兴趣的情况,留言或讨论,分享
后台上传
话题的状态:提交 → 审核通过 → 话题开始前 → 话题结束后

话题结束前:

话题名
话题状态:即将开始
基本信息:
所属活动及时间
提交时间
话题的类别、tag
贡献者:贡献者的更多信息(提交话题的时候填写)
话题简介
可做的行为
喜欢:热度信息
分享(最好是挂着)
评论
话题结束后:

现场照片:可以直接看;需要可以上传
视频:可以直接看;需要可以上传
相关文章:露出一部分,点击查看全部
Slides 等资料:可以点击查看或下载;需要可以上传

#前端# 话题页的下方信息展示的优化

说明:
这里特指头部信息下方的信息。头部信息的展示优化见 #41

目的:
提升页面使用和信息展示效率。现在的又臭又长,信息冗余严重,最有用的信息在最下面……在没有设计师做视觉的时候,可以先用简单粗暴的方法调整过来。

调整的思路:
用 tab 的方式来整理信息,收起不那么重要的信息。

调整的方法:

  1. 第一个 tab:话题
    1. 把现在“招募话题”的标题和标题下方的东西放在这里
    2. 然后放“本期已提交的话题”
  2. 第二个 tab:更多活动信息
    1. 把 1 和 3 之外的信息都放到这个 tab 里面去
  3. tab 下方放“讨论区”
  4. “讨论区”下方放“参加这次活动的朋友”的头像墙

to do: 确定一个第三方评论服务,嵌入话题页&活动页

如上次线下碰头:

我们需要确定一个长期稳定的第三方评论服务,能够自行解决防范spam、恶意攻击 等问题。

将该服务嵌入到open party 活动页(http://www.beijing-open-party.org/event/28)、话题页(http://www.beijing-open-party.org/topic/194)。

报名用户可以使用该服务,在op 网站进行留言、对话题页的评论。(可以先不实现用户之间相互 follow、@ 等功能,仅实现最简单的留言、评论功能)

注册后直接变成登录态

现状:注册后需要再次登录才会变成登录态
期待:注册成功后直接就变成登录态,并显示填写的昵称(若有)
目的:缩短流程,提升体验

#前端# 活动页的头部重要信息展示的优化

目的:提升活动页(http://www.beijing-open-party.org/event/30 )的头部重要信息展示效率

现状:

  1. 图撑长了整个页面,有效信息露不出来
  2. 不少信息是重复的
  3. 有改版后的框图,但是没有设计师来做视觉,也不知道什么时候会有

期待:(可以在没有设计师的时候先做简单的优化)

  1. 去掉话题名称下面灰色“胶囊”状的信息
  2. 把报名和提交话题的按钮放到下面(具体放到哪里见下面描述)
  3. 把海报右对齐
  4. 海报的左边依次放这些信息:
    1. 活动时间:2014.06.21 周六 13:30~17:30
    2. 添加到 google 日历 → 不要另起一行,跟随上面的时间
    3. 活动地点:北京市东直门国华投资大厦 11 层 ThoughtWorks Office,地铁2号线东直门站西南(D)出口50米即到。
    4. 报名人数:58
    5. 报名按钮
    6. 提交话题按钮

#前端# 首页信息结构的优化

目的:现在介绍理念的部分文字和下面的混在一起,不容易阅读,而且也不利于人们理解。等待设计师期间,也可以做一些简单的调整来改善现状。

希望的调整:(用现在“往期活动”那个栏目的样式)

  1. 用分栏标题“我们的理念”,有分栏线,然后再出现那段文字
  2. 用分栏标题“本月活动”,有分栏线,然后再出现本月活动“夏荷听雨”
  3. 用分栏标题“往期活动”,有分栏线,然后再有三个往期的活动
    1. 可以不要文字了,直接用活动名称和海报,海报放大
  4. 下面都保持现状

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.