Giter Club home page Giter Club logo

codebattle-aymean's Introduction

CodeBattle

Web platform to practice problem solving, algorithms and data structures.

The main focus of this platform is to force participants to use best practices while solving programming problems/challenges to get the most outcome from their training.

The problem:

Many competitive programmers follow wrong ways/happites while solving problems and the most two common things are:

  1. NOT taking enough time checking/testing correctness of their solutions and submit their solution once they got a working idea from the first glance.
  2. NOT focusing on a problems set but instead distracting themselves by looking regularly on the standings and what others are doing, and this my lead to some frustration during a contest.

The solution:

  1. Limiting number of submissions per problem in a contest (max 2) to let participants think more about correctness of a solution before submit, otherwise submission for tried problem will be closed and getting penalty.
  2. Standings are published after the end of a contest to just compete against a problems set and focus on them only.

NOTE: This project is currently in progress and planning to be published to the world soon...

Features:

  • Login
  • Register
  • User profile
  • Problems
  • Contests
  • Standings
  • Solution tutorial (in progress...)

Admins only can create problems and contests.

  1. Problem creation:
    • Problem name.
    • Main Description (story) section.
    • Input description section.
    • Output description section.
    • Additional notes section.
    • Upload sample/test cases files (currently just one sample and one test files are supported).
    • Choosing file comparing checker type.
      • Line Checker.
      • Token Sequence Checker.
      • ... planning to allow for customized checkers.
  2. Contest creation:
    • Contest name.
    • Adding created problems to contest.
    • Start date.
    • Duration in minutes.
    • Contest privaciy (public or private). NOTE: private is not supported currently but it's in the plan.

A participant can:

  1. Show all upcoming/running/archieved contests.
  2. Register in a contest.
  3. Submit a problem.
  4. Show standings after a contest ends immediatly.
  5. Show problems solution tutorial after a contest ends immediatly.

Problem submission:

  • Currently it's just output files comparing.
  • Could make it submit source code in the future.
  • Submission steps:
    1. Download input file.
    2. Upload output file.
    3. Recieving judgement verdict.

Standings:

  • Ranking criteria is based on the ICPC style.

Technologies used:

  • Java
  • Spring (MVC, Data JPA, Security)
  • MySQL
  • Hibernate
  • Thymeleaf
  • Bootstrap
  • JavaScript
  • JQuery
  • MathJax
  • IntelliJ IDEA

If you have any idea, or want to contribute to this project please don't hesitate for that and it will be so appreciated.

codebattle-aymean's People

Contributors

aymansalah96 avatar

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.