Giter Club home page Giter Club logo

d3bate's Introduction

d3bate

Codecov GitHub Workflow Status

d3bate is a digital debating platform. It's designed to make it easy to run debating-related activities.

Quickstart

There are multiple ways (listed here in order of complexity) to use d3bate.

  1. The hosted web application
  2. Hosting on a (free) cloud platform
  3. Hosting on your own servers

Contributing

Contributions are welcome!

The backend can always do with more testing. Currently the backend has a set of end to end tests - any additional tests (even if they fail) are welcomed.

d3bate's People

Contributors

dependabot[bot] avatar teymour-aldridge avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

pwntester

d3bate's Issues

[FEATURE] Rename "master" branch to "main"

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Uncaught ReferenceError

I tried visiting debating.web.app but got the following error:

Uncaught ReferenceError: compose is not defined
    at Object.164 (index.js:277)
    at l (bootstrap:79)
    at Module.<anonymous> (2.d14b96c1.chunk.js:2)
    at l (bootstrap:79)
    at Object.166 (app.5e52e444.chunk.js:1)
    at l (bootstrap:79)
    at t (bootstrap:45)
    at Array.r [as push] (bootstrap:32)
    at app.5e52e444.chunk.js:1

caused by this line:

const composeEnhancer = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;

[FEATURE] Implement new client using Yew.

Is your feature request related to a problem? Please describe.
We need a new frontend! It's going to be built using Yew, as Rust + WebAssembly web framework.

Describe the solution you'd like
Should handle all the necessary stuff โ€“ย e.g. logging in, logging out, updating data, etc.

Describe alternatives you've considered

Additional context
I'm building a GraphQL runtime to go along with this.

[FEATURE] Add clippy to the CI

Describe the solution you'd like
Clippy is the official Rust linter.
It can be invoked with cargo clippy. It will need to be configured to cause the CI process to report an error if there's a warning.

Clippy should be run in between these two steps:

- uses: actions-rs/toolchain@v1
with:
toolchain: nightly
override: true
- run: sudo apt install postgresql postgresql-contrib && cargo install diesel_cli --no-default-features --features postgres

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Make the calendar line up

Is your feature request related to a problem? Please describe.
I often find the calendar can be confusing because the days don't appear as I'd expect them to.

Describe the solution you'd like
I want the first column of the calendar to be Monday and the calendar to align itself to suit this arrangement.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Currently the calendar looks a bit like this:
Screenshot 2020-01-10 at 19 16 33

Ideally, the first day would be Monday (not Wednesday) and the second Tuesday and so on. To do this there would need to be either:

  • an offset (with blank days)
  • events from the previous month would need to be introduced

[BUG] the app takes too long to load

Describe the bug
It takes a couple of minutes (on a slow internet connection) to load the app.
To Reproduce
Steps to reproduce the behavior:

  1. open https://debating.web.app in your browser

Expected behavior
The app to load quickly

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: MacOS
  • Browser: Chrome, Firefox and Safari

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

[FEATURE] Resolve warnings in the server.

Is your feature request related to a problem? Please describe.
I really rushed things when I wrote the server. It would be nice to resolve all the numerous problems in it.

Describe the solution you'd like
The server should compile without the Rust compiler raising any warnings.

Additional context
None.

Register functionality

Is your feature request related to a problem? Please describe.
It is not

Describe the solution you'd like
I'd like to be able to take a register in the app.

Describe alternatives you've considered
None

Additional context
Club administrators should be able to take a register for all events in the calendar.

Allow users to sign up using Google

Is your feature request related to a problem? Please describe.
I might not want to give my password to the app.

Describe the solution you'd like
I'd like to be able to click a 'sign in with Google' button to allow me to log in using my Google account.

Describe alternatives you've considered
Email and password

Additional context

Add functionality for judging debates

Is your feature request related to a problem? Please describe.
I want to be able to judge debates and provide feedback to people in my club with greater ease.

Describe the solution you'd like
I'd like to be able to input notes for each speaker and give a ranking to them.

Describe alternatives you've considered
Pen and paper.

Additional context
Some work has started upon this.

Switch from `actix-web` to Rocket.

Is your feature request related to a problem? Please describe.
Rocket is a nicer web framework to use than Actix Web.

Describe the solution you'd like
Instead of using Actix Web, the server should use Rocket.

Describe alternatives you've considered
Warp

Additional context
[ ] The impl::FromRequest for Claims might need to be reworked to use Rocket's equivalent trait.
[ ] Juniper has first-class integration for Rocket with the juniper_rocket crate. This should be used instead of juniper_actix and the server/Cargo.toml should be updated to use a specific release of juniper_rocket and juniper (instead of linking to a specific git commit).

Add tests for the app

Is your feature request related to a problem? Please describe.
I'm concerned that the project might have a lot of bugs in it.

Describe the solution you'd like
I'd like a series of unit and functional tests to ensure the app works properly.

Describe alternatives you've considered

  • Releasing bugs onto unsuspecting users and asking them to report them.
  • Reinforcement-learning based automated testing.

Additional context
There is currently a file with one test which is guaranteed to pass.

Allow users to see whether users have confirmed their attendance for an event

Is your feature request related to a problem? Please describe.
My feature is not related to a problem.

Describe the solution you'd like
I'd like to see a list of users who have confirmed their attendance to an event in my club's calendar (only if I am an administrator).

Describe alternatives you've considered
None

Additional context
The option to view this data should be in the detailed event view (at the url location /event/:id) and show a list of users who have confirmed attendance as well as all the users who have not confirmed attendance.

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.