This blog post is the final report for the CircuitVerse Practice Section , which is a part of Google Summer of Code 2024. The project aimed to create a practice section where user can practice circuit related problems.
š„ Moderator Role Administration: Allowing admins to add and remove question moderators.
š§ Question Category Management: Allowing admins and moderators to create and delete question categories.
š Question Listing: Features including search, filtering capabilities, pagination, and view options.
š Question Management with Simulator Integration: Allowing admins and moderators to add, edit, and delete questions. Users can attempt a question with circuit boilerplate.
ā Auto Verification and Submission: Auto-verify and submit circuits, storing users’ progress.
š User Dashboard: A dashboard to track submission history and progress, with the ability to toggle visibility.
š¦ Feature Access Control: A Flipper feature flag to control access/block this entire feature.
From the admin dashboard, admins can add new moderator email IDs or remove existing ones.
Similar to the moderator management feature, in the dashboard there will be an option for Add categories
. But unlike Add modertaors , Add Categories will be visible to both question bank moderators and the admins. Clicking this button will open a modal where user can add a new category or delete and existing one.
The below screenshot shows the placement of the above two feature buttons:
This is the page where users will be able to browse and view questions. The features implemented on this page include:
Moderators will be able to create/delete/edit a question.
Add Question
menu in the dropdown.
In that form they can add question heading, statement (markdown supported), question category and difficulty level.Create Circuit boilerplate and Test Data
, simulator page will be opened to add circuit boilerplate, which will contain input/output probes and a pre-configured testbench. Moderator needs to click on save on the top right after adding boilerplate and testbench data. This gives users a ready-made setup to start solving digital logic problems.
Edit
and Delete
will be available for modifying or removing a question. When the Edit button is clicked, a form similar to the one used for creating a question will appear, pre-populated with the existing question’s data.Submit and Test
button, then the number of test case passed out of total number test cases (provided in the testBench while creating question) is shown as an alert.
If all the test cases are passed, then it goes under solved
category else it goes under attempted
category.Submit and Test
button, their progress is saved, allowing them to resume later from the same point where they left off.My Questions
is added beside Collaborated Circuits
tab. In this tab an user can see all the questions which he/she has attempted or solved. On clicking the View
button, he/she will be able to attempt the question again and circuit will be restored from where he/she left off.My Questions
tab public or private. If a particular user makes his/her questions dashboard public, then other users will be able to see his/her submissions of a particular question in his My Question
Tab on the url users/:user_id
. If he/she modifies that submission, then it will be reflected on his/her dashboard for the same question and not on other user dashboard.
A feature flag named question_bank
has been added in flipper dashboard to enable or disable this feature. When enabled, all project features are accessible to members of the respective roles. When disabled, none of the features including administrative functions can be accessed.
Pull request for the entire feature can be found here
Phase 1 blog GSoC@24 Jaydip Dey
week 0
- GSoC@24 - Community Bondingweek 1 to 3
- GSoC@24 - week 1 to 3 blogweek 4
- GSoC@24 - week 4 blogweek 5 & 6
- GSoC@24 - week 5&6 blogweek 7 & 8
- GSoC@24 - week 7&8 blogweek 9 & 10
- GSoC@24 - week 9&10 blogweek 11 & 12
- GSoC@24 - week 11&12 blogExtension period
- GSoC@24 - Extension period blogThe project has been successfully completed, achieving all its objectives. This new CircuitVerse Practise Section
feature is ready for integration into the main CircuitVerse repository. The past 12 weeks have been an incredible experience working on this project and collaborating with the team. Iām deeply grateful to the mentors for their unwavering support and willingness to address any doubts I had. I look forward to continuing to contribute to CircuitVerse and am always happy to assist fellow contributors in the future.