Git Product home page Git Product logo

codegolf's People

Contributors

cameronaavik avatar mgtlake avatar trmanderson avatar wisebaldone avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

codegolf's Issues

Website Pages

Here are the following pages I believe should be implemented and what will be on them. Again, feedback is welcomed.

On all pages will be a nav-bar that take us to: Homepage, Challenges, Users, Account, Login

Homepage
On here we can see all the currently active challenges as well as a leader-board for each of those challenges with all but the size and language hidden.
I believe we were going to make it so that a challenge will be up for 2 weeks before we release the submissions to be public, after that people can still submit solutions, but they will not get any points for it

Challenges
A list of all challenges, present and past. with a small bit of information such as the start/end date, who the winner was (if there is one yet). Each challenge in the list will link to a dedicated page for that individual challenge

Challenge
This is a page for an individual challenge. Should have the title, description, leaderboard, start date, end date. The leaderboard links to the individual submissions. To make a submission for a challenge you must be logged in.

Create/Update Submission
Some kind of text input with indicator of challenge being attempted. Includes the current size of the text on the side. You can also see a history of your updates and their code sizes in case you want to improve upon a previous submission.

Submission
This will always show the language and the code size. If the challenge is past it's end date, then it will also show the code, and the user.

Users
This is a leaderboard of every user so we can see which users have got the most points across all the challenges. Each user has their own public page

User
On this page we can see all the users submissions that they have made and their score.

Account
Change your email if not logged in via UQ. See your own stats and links to your submissions (even if they aren't publicly visible yet)

Login
Option to log in via UQ. Option to log in with email address, username, password

Database Design

Please reply with any suggestions/recommendations or anything else you think we may need to store

User

  • User ID (PK)
  • Name
  • Email
  • UQ Username (eg uqxxx or s4xxxxxx) [optional]
  • Role
  • Points (For when we give out points to the user for their submission)

Challenge

  • Challenge ID (PK)
  • Start Date
  • Challenge Duration (How long after the start will submissions be hidden)
  • User ID for user that submitted the challenge (FK -> User)
  • Challenge Title
  • Challenge Description

Submission

  • Submission ID (PK)
  • Challenge ID (FK -> Challenge)
  • User ID (FK -> User)
  • Submission Date
  • Language (separate table for list of valid languages?)
  • Content (TEXT field holding the user's submission for the challenge). This has a maximum size of 65536 bytes
  • Points (how many points this submission got)

Notes:
There will be an optional UQ Login which will automatically fill the user's values for Name, Email and UQ username

Role will be either "User" or "Admin". This is to enable any admin-specific features we may want down the line such as being able to review and delete submissions.

This should be all the information we would need to store.

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.