IronCoders

Image 1 Image 2

An online platform that facilitates learning of programming through specialised tools and resources.

It is one of my first projects that I have worked on during high school, more specifically 10th and 11th grade.

Platform’s modules:

Archive of problems

This is the first working module of IronCoders. As its name suggests, it contains a list of problems that can be solved by the members of the site (using the integrated IDE or uploading directly the source code). Problems are classified into two main categories:

  • The educational archive: problems are designed to emphasize a single algorithm (with all the explanations needed).
  • The contest & olympiad archive.

Each code is evaluated and graded automatically by the same criteria used in olympics (time and memory).

Problems can be uploaded easily by anyone, and for every problem, a thread is automatically created on the forum (which is PHPBB). This acts as the comment section.

Through the evaluation monitor, users can see how their code performed. They can find out on which tests their program failed and why (wrong answer, time limit exceeded, memory usage).

It is not possible to view other sources until you achieve 100 points (the maximum), unless the problem is in the educational archive (where it is beneficial to see how others solved it and learn from them).

IDE

The IDE allows coding directly on the platform without needing an external program. This module is integrated with the “archive of problems.” Currently, C++ and C are available (the main two languages used in Romanian schools). There are plans to implement additional languages in the future.

Interactive Courses

This is one of the most important modules of the platform. As the name suggests, it represents a more interactive way of learning how to code. Lessons are organized into two parts: theoretical and practical. The page is split into two sections, one for viewing the theory and another for completing the requested programming task to advance to the next lesson.

This module is designed to provide custom feedback for each part of the code, allowing users to discover and understand issues in their code and fix them.

By using AJAX, lessons can be completed without refreshing the page, making the process smoother.

Competitions

This module allows users to test their knowledge against others. There are two types of contests:

  1. Official contests organized by staff members.
  2. Regular contests, which can be created by anyone (often used before olympics to simulate a similar experience).

Contests can be configured to last a variable amount of time and start at a specific time. Once a contest finishes, a ranking page is created, and all evaluation reports are made available to participants.

Virtual Classes

This module provides an experience similar to a real classroom. Designated individuals can teach others, assign and evaluate tasks, and chat with participants (each class has its own instance of the “chat” module).

Chat

The chat module facilitates communication between users and is integrated across all areas that benefit from it.

The platform’s login system is based on the one implemented in the PHPBB forum, synchronized between the site’s modules and the WordPress blog.

Every user has a profile page to display information about themselves, view solved and attempted problems, and manage saved code sources.


Github

https://github.com/msorins/IronCoders