illinois / clickin Goto Github PK
View Code? Open in Web Editor NEWOpen Source Polling App
License: University of Illinois/NCSA Open Source License
Open Source Polling App
License: University of Illinois/NCSA Open Source License
Right now our flask application is using global variables to keep track of the current instructor, list of students, question, answers, etc. on a per-room basis, but this needs to be stored in a database. I think we should use an in-memory database like redis to preserve global state in our app while giving faster response times than a regular SQL database
To ensure that reviewers can understand commit messages and pull requests quickly, guidelines on their formats and content should be established and documented accordingly.
For commit messages, How to Write a Git Commit Message is a blog post that discusses what I consider good guidelines for commit messages:
Additionally, the blog post also provides an example of a commit message that lists resolved and related issue numbers at the bottom:
Resolves: #123
See also: #456, #789
Commit 042edf7 is an example of what I would consider an ideal commit message format.
For pull requests, it is important to provide a big-picture overview of what the pull request is doing in the first comment. For pull requests related to the frontend, it is also valuable to provide screenshots of new or updated UI. The first comment of #45 is what I would consider an ideal example of both of these principles.
Adding the NCSA license to the ClickIn project
We need to add a .gitignore for .pycache and any other files
Set-up Google Apps Authentication
Clicking on a question on #32 will lead here. Detailed view of question along with answer options and ability to start polling.
Looks like we will need to contact someone from the school to get this set up. We need a URL similar to https://queue.illinois.edu/ which needs to be whitelisted by the school. Upon authentication, we will receive a parameter called eppn
which I believe is the user's school email, i.e. [email protected]
It would be good to set up some sort of linting/formatting requirement before the codebase grows. I'm partial to black, which is part of the PSF. It has plugin support for most major editors and can be set up with CI to check for proper formatting at PR time.
flake8 checks code compliance with the PEP 8 Python style guide. We could run this after black to catch any other linting errors. The downside of solely using flake8 is that it won't fix these issues for you - black will happily format your code and fix most problems.
Of course, introducing style requirements does raise the bar to commit a bit. If we do implement style guidelines, we should ensure it's as easy as possible to install and run the needed tools.
We are using the regular WS protocol, but we should be using WSS instead. The difference is similar to that of HTTP and HTTPS. Data is encrypted over SSL/TLS.
For example, "80Ok" is hard-to-read since a 0 is similar to a O. So are 1, I, and l.
To facilitate development of the Flask API, a consensus should be reached on how the frontend and backend will communicate through this API. Some design points to address:
A consensus should be reached on which database model (https://en.wikipedia.org/wiki/Database_model#targetText=A%20database%20model%20is%20a,uses%20a%20table%2Dbased%20format.) and schemas should be used. These decisions should aim to make CRUD operations efficient and the database scalable.
Below are pictures from today's meeting of ideas for schemas:
We should consider using a static type checker and PEP 484 type hints in our codebase.
There are a few benefits to using type annotations for function signatures - they help self-document the codebase as it grows, and they help catch type errors which may introduce bugs into our code.
While type hints are a built-in part of the Python language, Python doesn't validate the correctness of these types. This is where a static type checker would be useful, which could be run during development and by CI at PR time. The de-facto standard is mypy, but pyre is also an option.
We will need to generate a short url to quick-join a polling session. For example, click.in/xYz6. The code that's generated should be easy to read/type (no special characters). Think of edge cases of specific words we want to avoid (censor out swear word possibilities).
The main Remote screen should be centered on the page.
I also added some flair to the "waiting for question" default that animates the ellipsis to be "loading"
Self-explanatory. Design wireframes as you're working so we can discuss UI.
Features:
Add a guide for people interested in contributing to the project, especially those who did not attend earlier HackNights.
Related to #30 .
Given a short URL (e.g. join.click.in/xYz6), it should route user to target polling session page and authenticate if previously logged in.
Display a message that says something along the lines of "waiting for instructor..." if there is no instructor in a room
We could create a library of reusable React components that can be called for things like buttons, lists, question types, etc. instead of using bootstrap. Thoughts?
We probably want some sort of CI (Travis or otherwise) setup w/ our backend so we can run tests on PRs before merging.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.