Giter Club home page Giter Club logo

iqueensu's Introduction

Develop Build CircleCI Master CircleCI

CodeFactor

iQueensu

  • Frontend Portal to iQueensu - frontend repo

Development Instructions

Best practices

  • Always push to personal branch and open a PR.
  • Request review from a peer dev.
  • Follow PEP 8 coding style, follow Pylint.
  • Always run a test after you modify anything.
  • Follow the instructions of git-flow

Git-flow

Git-flow is a tool for automatic branch management, deal with dirty commit histories. Following are default settings for this repository:

  • Production branch: master
  • "Next Production" branch: dev
  • Feature: feature/
  • Bugfix: bugfix/
  • Release: release/
  • Hotfix: hotfix/
  • Support: support/

Notice: NEVER EVER modify master dev dev-deploy release directly! Notice: Always squash verbose commits to a single one tight and neat commit before merge into main flows.

Basic usage of Git-flow:

  1. Start with a new feature

    git flow feature start "your-feature-name"

    This will automatically create a new branch called feature/your-feature-name, based on dev branch

  2. Finish a feature Do not use git flow feature finish directly. After finish your coding, create pr manually on github. After your code is fully reviewed and marked as ready to merge, then run

    git flow feature finish "your-feature-name"

    This will merge contents of feature/your-feature-name into dev, and delete feature/your-feature-name

  3. Initialize with git-flow

    git flow init

    And then follow by instructions

Deploy and test

When you pull request or merge into dev-deploy, the contents will be automatically tested and send to dev test server if no error occur during ci build and test stage.

PyLint

  • Pycharm - Preference - Plugin - Marketplace

  • Search for Pylint, Install it and reboot Pycharm. Pylint will appear as an icon in lower left corner, there's one inside VCS - Commit too.

Testing

Configurations

  1. Modify settings.py in iQueensu, make sure docker is set to True
  2. Duplicate settings_example.py to settings.py in QCumber - scraper - assets. Fill in corresponding Queen's SSO credentials. This step is crucial to the proper running of SOLUS Scraper.
  • To run the project in pure local env (Not recommended), set docker to False. Note you may encounter multiple errors as this method is deprecated.

Our project is Dockerized

  • To build the source code in your local Docker

    • The docker container will automatically reflect latest change of source code. So don't build again, run > docker-compose up instead.
    1. Clone the code, make sure docker is running
    2. Make sure the DOCKER Variable is set to True in settings.py
    3. Run following commands
      docker-compose run web python manage.py migrate
      
      [Windows Git Bash]> winpty docker-compose run web python manage.py createsuperuser
      
      [Unix & Powershell]> docker-compose run web python manage.py createsuperuser
      
      docker-compose build
      
      docker-compose up
      
      
  • To pull from remote image.. Implementing

  • Then, to test the backend, you run the scraper by entering the url given to you by the console:

0.0.0.0:8000/admin/course or 127.0.0.1:8000/admin/courses or Localhost:8000/admins/courses

Enter your username and password to SOLUS and Start Scraper. DO NOT REFRESH THE START-SCRAPER-PAGE You can see in the docker-console that the scraper is running.

API VIEWs:

Go to /api/v1/qcumber/


Contributors

Usernames are listed in alphabetical order

Amber201604
Amber
Backend
Developer

📖 👀 📢
EricPyZhou
EricPyZhou
Chief Frontend
Developer

📖 👀 📢
Pipi
皮皮Fox
Frontend
Developer

📖 👀 📢
Ricky Zhang
Ricky Zhang
Chief UI/UX
Designer

📖 👀 📢
LeoZzz
LeoZzz
Frontend
Developer

📖 👀 📢
Somion
Somion
Full-Stack
Developer

📖 👀 📢

Previous Contributors

Nalsen
Nalsen
Special Thanks
Previous Developer

📖 👀 📢

TO DO LIST: Prioritized

Qcumber Dev

Project Title

This is the repo of Project iQueensu, an django-react based website working along with a discourse powered forum.

We aim to build and provide a better community for Queen's Students and Alumni.

Getting Started

Requirements

Optional ()

Installing

Deployment

[Bash Script] - Triggered by Git Actions CI Implementing...

Python path can be found by

import sys
      
print("Python EXE : " + sys.executable)

Built With

  • Django - The web framework for perfectionists with deadlines.

iqueensu's People

Contributors

amber201604 avatar dependabot-preview[bot] avatar somiona avatar superskyyy avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

iqueensu's Issues

Add support for following Search Patterns

  • Users tend to search for something like AGHE 818.
    Now an exact match will not come up, it only shows anything related to AGHE 8xx.
    We will add a new field to the course model, either show this field(AGHE-818) or AGHE(Subject-name) + 818 (Subject-code) Remove one of them from Serializer.

Database pages

Design Database pages

  • grade distribution
  • course catalog
  • degree planing
  • secret library

Refine Scraper Configuration Procedure

In order to finish the full functionality of #43, the QScraper configuration procedure has to be changed.
Details:
To the security concerns, the personal account information should not appear during CI and deploy procedures. Therefore, the scraper should be configurated after the testing server is UP and entered via the admin page.

Course Review and Ratings

Implement Course Review and Rating section

  • Review section with/ maybe with pictures.

  • Rating bar with stars, this section can show up

  1. at Preview?
  2. Top of the detail page or Each time a user gives review?
  • Connect User model to the reviews, able to view reviews in user panel.
  • Block the user model in public view(serializer)

Course selection automation proposal for Qcumber

我propose一个新功能 优先级低于其他 优先完成基础 再做这个。

  • 功能 通过selenium远程选择自定课表上的课程。

  • 细节 在UI上加一个新的入口对接Selenium 选课脚本 这个入口每天通过waitlist限量开放 通过限制次数 只做实验目的 -> 直到我们可以找到合适的办法保证安全存储传输清理用户的账号密码

  • 效果:通过解决国内学生翻墙痛点,来达成网站推广目的。

  • UI:需要新的入口和对应页面。

  • 交互:与已设计的系统交互的方式是通过排课表功能的入口拿到课程并且向用户取得密码后交给selenium自动完成单次/多个代选课 可以通过selenium的snapshot回传课程是否选上等信息。

  • ⚠️抢课功能因为高风险得不偿失不在考虑范围内 如果有不会被抓的奇技淫巧可以在新issue提出

QAuth起名有误导性

现在的QAuth应该作为api的名字 误把user model的名字取为QAuth了 应改为QUsers

Use of gitflow

我们要不要商定一个统一的branch规则,比如用git flow的feature/hotfix模型之类的

Sign up + Sign in pages

使用什么信息注册?比如邮箱,手机,用户名,etc
使用什么信息登录?(如果和注册信息不完全一样)
什么情况下会有验证码之类的机制?
@CalElFe @Superskyyy

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.