RedSet creates a beneficial environment for learners that includes topic wise problems with solution, notes section where user can keep notes or templates, notify about running and upcoming contest of groups where user is joined, leaderboard and activity, and the exclusive feature LatticeLine, that includes compiler, groups feature (Individual can create or join groups. The teachers of every group can make announce, assignment - like Google Classroom and contest - like an Online Judge.)
You can run our project in your system by cloning the project. Run git clone https://github.com/hasnat0006/RedSet
in your terminal.
Before run, delete RedSet/target
(if found) and create a database named lattice
in your localhost mysql server. Run CREATE DATABASE lattice;
. Then run the given sql script for the full database lattice
.
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
CREATE TABLE `announce` (
`text` text,
`date` varchar(50) DEFAULT NULL,
`gp` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
CREATE TABLE `assignment` (
`group_name` varchar(30) DEFAULT NULL,
`text` text,
`code` text,
`input` longtext,
`assignId` varchar(30) NOT NULL,
`users` text,
`timeLimit` varchar(5) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
CREATE TABLE `conProb` (
`problemid` varchar(30) NOT NULL,
`statement` text,
`code` text,
`input` longtext,
`users` text,
`timeLimit` varchar(5) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
CREATE TABLE `contest` (
`contestName` varchar(30) NOT NULL,
`startTime` varchar(30) DEFAULT NULL,
`duration` varchar(30) DEFAULT NULL,
`problemsIds` text,
`groupName` varchar(30) DEFAULT NULL,
`ranking` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
CREATE TABLE `gp` (
`name` varchar(30) NOT NULL,
`stdents` varchar(1000) DEFAULT NULL,
`teachers` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
CREATE TABLE `notes` (
`title` text,
`note` longtext,
`user` varchar(30) DEFAULT NULL,
`date` varchar(30) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
CREATE TABLE `problems` (
`problemid` varchar(50) NOT NULL,
`statement` text,
`code` text,
`input` longtext,
`users` text,
`timeLimit` varchar(5) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
CREATE TABLE `studyProblems` (
`problemid` varchar(30) NOT NULL,
`statement` text,
`timelimit` varchar(5) DEFAULT NULL,
`code` text,
`input` longtext,
`users` text,
`solution` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
CREATE TABLE `studyTopic` (
`topicName` varchar(30) NOT NULL,
`problemids` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
CREATE TABLE `users` (
`username` varchar(30) NOT NULL,
`password` varchar(30) DEFAULT NULL,
`connect` text,
`fullName` varchar(30) DEFAULT NULL,
`studentId` varchar(30) DEFAULT NULL,
`email` varchar(30) DEFAULT NULL,
`institute` varchar(30) DEFAULT NULL,
`time` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
ALTER TABLE `assignment`
ADD UNIQUE KEY `assignId` (`assignId`);
ALTER TABLE `conProb`
ADD PRIMARY KEY (`problemid`);
ALTER TABLE `contest`
ADD PRIMARY KEY (`contestName`);
ALTER TABLE `gp`
ADD PRIMARY KEY (`name`);
ALTER TABLE `problems`
ADD PRIMARY KEY (`problemid`);
ALTER TABLE `studyProblems`
ADD PRIMARY KEY (`problemid`);
ALTER TABLE `studyTopic`
ADD PRIMARY KEY (`topicName`);
ALTER TABLE `users`
ADD PRIMARY KEY (`username`);
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Then change username and password in RedSet/src/main/java/com/example/RedSet/DBconnect.java
.
Dashboard gives a vivid idea of what can be done in RedSet. It gives important information to the users about how long he is in the application through graphical representation. Moreover, it also shows the number of different types of problems through a pie-chart. Besides it also provides features such as,
It is possible to keep necessary codes,templates and notes inside this section.
A user can add/update and delete his desired template/code or notes.
This section gives the user a chance to challenge his current capability by solving various types of problems.
contains problems of a certain topic.
User can attempt a problem and try solving it. If the solution provided by the user is correct, the judge will mark it as accepted including required time.
User can read editorials or get the sample accepted solution if he fails to solve the problem.
Shows the user his current standing on the basis of the amount of time spent in the application.
An exclusive part of RedSet which is discussed below:
- Solving problem from problem section
- Users can create group or join an existing group
- Teachers of a group can create assignments, announcements and contests
- Assignment of a student will accept when all the testcases for this assignment is passed, like an online judge
- Teachers can see the status of every assignment
- Users can see real-time ranking of a contest
- All the submissions of a contest will visible after the contest end
- Contests and assignments are editable/updatable
- Teachers can add a user as teacher from the group
It is global problem section. Any user can solve problem here. These problems are added by RedSet.
It is a simple editor with highlighting syntax of C++ code feature that shows output including time and memory complexity. You can choose a file to compile from choose button. Only C++ is available right now.
In the group section user can see the connected groups. User can create a group as a teacher or join a group as a student by clicking Create & Join button showing in the bottom section. While creating a group, the name of that group should be unique.
Create Assignmente, like Google Classroom. Assignments are showing in each of the boxes.
Only Teachers can create assignment.
An assignment. Previous accepted solution remains visible with time & space limit. Only teachers can see status and edit the Assignment. Teachers can see inputs and update inputs.
A teacher can promote a student as a teacher.
Teachers can make necessary announcements .
Users can view the announcements that were made up until the teacher doesn't delete it.
Students can enter to the contest if the contest is running or ended state. Teachers can enter and edit/update the contest anytime.
You can see a countdown at the bottom inside a contest page.
Students can only see the status after the end time of a contest. But teacher can see the status anytime.
Ranking of every contest. 20 penalty will increase for a wrong submission.
User can view his current given information and edit them anytime.