Git Product home page Git Product logo

clms-sigmago's Introduction

Competition & Lecture Management System by SigmaGo

This is a task in the course Software Engineering 2017, Tsinghua University.

Group Member

  • Xiufeng Huang, EE, THU, 2014;
  • Haidong Zhu, EE, THU, 2015;
  • Yining Cao, SE, THU, 2015;
  • Haotian Liu, EEA, THU, 2014;
  • Yizeng Han, DA, THU, 2014;
  • Zhixing Zhang, MSE, THU, 2015;

Introduction

In response to the lack of liquidity in lecture and competition information on campus and the students' excessive access to information and resources, our team hopes to design a competition management system to organize and summarize information on competitions and lectures. And an algorithm is designed to recommend appropriate lectures and competitions for specific students, so as to increase the students' awareness of the lectures they are interested in and the competitions they are interested in, so as to maximize the use of information.

Environment

  • Python: v3.6.2
  • Django: v1.11.6

Prepare environment

pip install django
pip install easy_thumbnails django-image-cropping
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple wechat-sdk

Before launch

cd src/CLMS
python manage.py makemigrations
python manage.py migrate

Create secert.py in src/CLMS/ , and add the following content.

class Secret():

    SECRET_TOKEN = 'YOUR_TOKEN'
    APP_ID = 'YOUR_ID'
    APP_SECRET = 'YOUR_SECRET'
    ENCODING_AES_KEY = 'YOUR_KEY'
    HOME_URL = 'http://YOUR_URL'

If you want to deploy it online, you should add your server ip in WEIXIN's IP whitelist.

Launch

cd src/CLMS
python manage.py runserver localhost:8080

Fix after updates

cd src/CLMS
python manage.py migrate --run-syncdb

Tips

Migrate Frontend Code

Regex replace src=((?!.*http)".+?") to src={% static $1 %}. Regex replace href=((?!.*(\#|http))".+?") to href={% static $1 %}.

Create docker machine

docker-machine create --driver=generic --generic-ip-address=YOUR_IP qcloud(your name)
eval $(docker-machine env qcloud)

Deploy

cd src/CLMS/
docker-compose up -d --build

License

GPLv3

clms-sigmago's People

Contributors

huangxf14 avatar lucianspec avatar ritou11 avatar rrrima avatar yizenghan avatar zhuhd15 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

zhuhd15

clms-sigmago's Issues

微信端问题

model里面能不能有competition和lecture的url链接和小图网址,用来给微信返回

微信端待添加功能

已实现功能

@zhang-zx 完成了如下功能:

  1. 目前部署的版本中已经集成了微信模块,参考公众号非极客(nogeek_top)。
  2. 回复竞赛、讲座,可以出现列表。

待添加功能

  1. 绑定用户身份;
  2. 按照用户特征进行推荐,可以直接复用后端的recommend算法。
  3. 活动订阅
  4. 活动提醒(公众号在用户与本身互动后的48h中可以主动给用户发消息)

Bug汇总

  • 主页登陆的时候没有失败提示
  • 主页点击discover 未登录时在页面http://sigmago.nogeek.cn/recom/出现错误(pr中已解决)
  • 搜索翻页bug(pr中已解决)
  • usericon当没有的时候显示默认头像会出bug(pr中已解决,但是如果前端不要的话直接在personalinfo中改前端就好了)
  • search中如果没有任何关键词会返回错误(pr中已解决)

用户信息的录入&问题

@thuallen 现在爬虫能爬下网络学堂的课程信息和学生部分个人信息(info还在和它的cookie斗争中...)现在的数据库中用户的表内容较简略,搜索策略所需要的信息可以直接在用户的类中修改

@ritou11 爬虫需要用户的学号和密码,前端需要确定这一信息在什么时候可以获取得到

关于search

有两种:

1、对tag的search,目前期望在点下tag后跳转到对应的结果,对应的url为:localhost:8000/tagEE,其中EE为tag名,不同的tag替换一下即可,在template中可直接使用的url name为search_tag,带一个参数即tag name(在上例中为EE)

2、对title、subtitle、holder、intro、content的综合搜索,目前期望在主页有一个搜索框,输入搜索内容用GET传递,对应的url为:localhost:8000/search/?s=xxx,其中xxx为搜索内容,对应的url name为search

最后一次迭代任务总结

现有任务

  1. PersonInfo迁移,目前页面在frontend-v2分支
  2. wechat用户绑定、订阅、推荐、订阅提醒
  3. 数据demo
  4. 数据管理系统,目前只有几个表单
  5. tag添加交互方式修改

关于推荐

现在想到的推荐机制:
step1 搜索举办方为本院系的比赛与讲座。(需要知道院系,以及从holder里提取信息)
step2 搜索含有该用户的兴趣tag的比赛与讲座。(已添加用户tag,但现在好像没啥用的样子)
step3 搜索含有根据该用户院系,自动形成的tag 的比赛与讲座。(需要知道院系)
step3.5 删除举办时间与该用户课程有冲突的搜索结果。(需要知道课程时间)
step4 根据该用户年级,将前面两步搜索到的比赛、讲座分别排序。如大一大二优先推荐难度较低的比赛(从introduction里面提取或者单独设立比赛难度或者面向的对象会让这一步简单一点),以及工具使用培训、编程语言培训类的讲座。(已经知道学生类型、年级,但还不知道如何从讲座和比赛中提取这一信息)
step5 将前面得到的排序结果返回给首页要显示的list.

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.