Code Monkey home page Code Monkey logo

abacus's People

Contributors

a1g3 avatar brad-cooley avatar dependabot[bot] avatar jl5her avatar mrkevinoconnell avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

abacus's Issues

Update nav bar based on user login status

Summary

Have it so that if a user is not logged in, when they access a specific division of the website, they are only presented tabs they have access to.

Basic example

I am not logged in and when I access the blue division side of the site, I am only displayed with the home page and standings.

Motivation

This makes the UI cleaner and prevents the need for displaying 401 errors on those pages.

Alert user when having trouble communicating with backend

Summary

At the top of the page show, an alert with a message stating that abacus cannot communicate with the servers and some features may not operate correctly. Also, include a 15-second retry timer.

Basic example

Motivation

Better inform the user what is going on and diagnosing the problem

Problem overview for admins/judges

Summary

Create a problem page for admin and judges to view information about problems including submissions and statistics. From this page, the admin can open the edit problem page which is already implemented.

Motivation

Provide judges and admins information about problems to troubleshoot issues, and analyze problem's statistics.

Can't log in after a failed attempt without reloading the page

Description

User cannot log into the app after a failed attempt. In order to do this, they must reload the page and try again.

Steps to reproduce

Try to log into an account with an incorrect password. Now, enter the correct password and try to log in and the request is still denied.

Expected result

The user should be able to log in.

Actual result

User log in is denied.

Disable problem after accepted submission

Summary

After a team has successfully solved a problem. Disable future submissions.

Basic example

Motivation

Although why would a team make another submission, stop them from accidently doing it.

Practice Problem Type

Summary

Create a practice problem type that can be attempted outside of the competition time for testing purposes, and does not go towards team's score.

Basic example

Motivation

Rework home page to present all registered teams

Summary

The current home page presents information about the competition. I propose we take that page and make it the "About" page and make the home page have a table of all registered teams, their division, and high school.

Motivation

The motivation behind this is the organization of the overall site as well as allowing teams to confirm they are registered. One other benefit could be increasing competition by showing the number of teams entered in the competition.

Indicators for work being done

Anytime a button is pressed that triggers something to be done, or the website is fetching data indicate so. This is already implemented in some places of the website, but this ticket is to have it done wherever possible to provide a better user experience.

Summary

Basic example

When clicking submit button on practice problems, a loader appears until the problem is submitted.

Motivation

User Experience

Problem description editor not expanding

Description

When editing a problem's description the textarea does not expand to fit the current description. Not until the user hits a key in the textarea.

Steps to reproduce

Go to Admin > Problems > (Pick any problem) -> Description.

Expected result

The description textarea should be expanded when the page is opened.

Evidence

Screen Shot 2020-12-04 at 7 40 00 PM

Bulk delete users

Summary

Also admins to bulk delete users.

Basic example

The user list could include checkboxes to select and a delete button to delete selected items. Another option is create a separate page to select which teams to delete.

Motivation

When creating sample user accounts for a test competition, clear out the sample users before the actual competition. Also, a handy feature to have.

SSL not being passed after login

Description

SSL certificate not being passed through upon login. Noticed this when I logged into an account and Chrome prompted me with a "your connection is not secure" warning.

Steps to reproduce

Visit codeabac.us and log into any user account. I, specifically, was using Chrome.

Expected result

SSL should be passed through and there should be no service interruption.

Actual result

SSL not passed and "not secure" warning prompted from web browser.

Evidence

image

On user logout, return them to homepage

Description

On user logout, we are currently still trying to load whatever page they were previously on while logged in. This results in a 401 - Unauthorized error (expected behavior for a non-logged in viewer). I propose that we redirect them to the main homepage for aesthetics and overall flow of the software.

Steps to reproduce

  • Login to an account.
  • Visit a page that only that type of account would have access to (Submissions, for example).
  • Logout

Expected result

I would like the user to be redirected to the homepage.

Actual result

The user is presented with a 401 error.

Table UI issues

Description

UI issue where clarifications table is split after a certain number of columns.

Steps to reproduce

Log into an admin account and look at the main clarifications table.

Expected result

No clarifications should display across the whole table.

Actual result

Table is segmented after a certain number of columns

Evidence

image

User checkboxes not changing state when individually clicked

Description

Checkbox doesn't work on users page.

Steps to reproduce

Login as an admin. Head to the users page. Try to click the checkbox of a singular user.

Expected result

Checkbox should become checked/unchecked depending on state

Actual result

Checkbox does not change states.

Ask Clarification Modal component

Create as a modal and embed on several pages throughout teams pages (Problem pages, Submission pages, etc.)

Stretch: Depending on where it is invoked default to category (Submission clarification, Problem clarification)

User Account Settings

Summary

As a user of Abacus, I would like specific account settings such as:

  • Password change
  • Picture uploading
  • Display name change

Motivation

I would like this feature so that I do not have to contact an admin every time I want to change one of these settings.

401 Error while page is rendering

Description

401 Unauthorized Errors given while waiting for certain pages to load on team accounts.

Steps to reproduce

  • Log into any team account and try loading a page like Problems or Submissions (a page that requires permissions to view).

Expected result

Page should load without displaying 401 error or should display a loading icon while waiting for data from backend.

Actual result

401 error displayed while waiting for data to finish loading.

Evidence

Example

Test numbers do not update when deleting tests

Description

When creating or modifying a problem in the admin interface, test numbers don't update properly.

Steps to reproduce

Create a new problem, add 2 tests (3 total), delete the second and add a third. The second and third test will have the same test number.

Expected result

After deleting the second test, the numbers should update to 1 and 2 (instead of staying 1 and 3)

Actual result

Test numbers are stagnant resulting in duplicate test numbers

Evidence

image

Throw and error when trying to change end date to before start date

Summary

In the admin dashboard, if the user tries to set the end date before the start date warn the user and don't go through with updating the database.

Basic example

Either could check before submitting the form, don't allow the form to be submitted unless the fields are valid, or implement on the backend (return an error) and parse on the client.

Motivation

The application should not allow this to happen because it is not acceptable behavior.

Mock AWS For Testing

Summary

Setup tests for backend endpoints using aws-sdk-mock (or alternatives) to run locally, on push, and before merging to master

Motivation

Refine and fortify CI/CD pipeline

Admin dashboard style changes

Summary

More statistics displayed on load for the admin dashboard as well as graph labels, etc.

Basic example

Statistics like "% of 1st try correct submissions"

Motivation

Make the admin dashboard more useful and helpful when it comes to analyzing how the competition went.

Prevent from deleting currently logged in user

Summary

From the user page stop an admin from deleting their own account. There shouldn't be too many bugs with it, just shouldn't happen.

Basic example

When the user clicks the delete button on their own account, pop up saying you can't do that, or hide the button all together.

Motivation

Prevent users from accidently deleting themselves when bulk deleting.

Team overview/stats for admins/judges

Summary

Create a team page for admin and judges to view information about teams including submissions and activity history. From this page, the admin can open the edit team page which is already implemented.

Motivation

Provide judges and admins information about teams to troubleshoot issues, and track teams progress.

Import teams from csv

Summary

From the Admin > Users page, add functionality to import teams from a .csv file for bulk loading.

Basic example

Add the ability for /api/users endpoint to accept POST request with a csv file as args. API endpoint will iterator over rows and use existing create user function to create teams. If a team already exists potentially update the team or skip (TBD).

Admin > Users page would include a form for sending POST request with file.

Motivation

Come competition time creating 80+ teams can be time-consuming. This functionality would expedite the process.

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.