Week #1

Week #1 #

Project description #

Project name: Verilog contest system #

Code repository: https://github.com/IU-Capstone-Project-2025/verilog-contest

A contest platform for practicing digital design using hardware description languages, allowing students to solve problems by writing and testing code in a sandboxed environment with automated verification.

Team Members #

Team MemberTelegram AliasEmail AddressTrackResponsibilities
Mikhail Panteleev@polinanimem.panteleev@innopolis.universityFullstackRepository initialization, backend skeleton, frontend development
Vladislav Merkulov@skibidivladikv.merkulov@innopolis.universityBackendBackend implementation
Aleksei Fominykh@Dangeowbsjwa.fominykh@innopolis.universityDevOpsDeploy system monitoring, deploy Kubernetes, conterezation
Sofia Kulagina@sofiakulaginas.kulagina@innopolis.universityDevOpsSetting up Dockerfiles, CI/CD
Diana Yakupova@dianaiad.yakupova@innopolis.universityProduct/Frontend/QATechnical documentation, reports, menegment, testing and frontend development

Brainstorming #

Ideas during brainstorming #

1. Verilog contest system is a simple contest system where students solve Verilog problems in a sandboxed environment with auto-grading.

2. Personal drink system is a mobile app + IoT device where users get recommendations about drinks based on their history, share recipes, and the machine doses ingredients precisely.

3. Gym tracker is an app that tracks gym payments and visits, reminds you if you skip, shows a mini calendar, logs calories, and uses AI to tailor workout plans to your goals and fitness level.

Problem validation for verilog contest system #

The problem:

  • Students need better tools to practice Verilog
  • Teachers need an automatic checking for assignments
  • Companies need tests for job candidates
  • Current tools don’t have contest features for Verilog practice
  • Verilog is hard to learn without practice

Basic requirements #

Target users and their primary needs #

  • Students: Practice problems, instant feedback
  • Teachers: Create contests, see results
  • HR: Test job candidates, has teacher’s features
  • Admins: Manage the system

User stories #

  • As an Instructor, I want to upload Verilog tasks and associated testbenches so participants can submit and validate their designs.

  • As a Student, I want to see simulation results and logs immediately after submission to debug my code.

  • As an HR Specialist, I want to export contest results to compare candidate performance.

Initial scope #

  • User accounts with roles
  • Create and run contests
  • Submit and check Verilog code
  • View results and scores
  • Basic leaderboard

Tech-stack #

CategoryTechnologies
LanguagesGo (backend), TypeScript (frontend)
FrameworkFiber (REST & RPC), React
Auth & AuthorizationSupabase Auth (GoTrue, JWT), Casbin (RBAC/ABAC)
Databases & StoragePostgreSQL, MinIO, Redis
Core Libraries & ToolsGORM (ORM), Asynq (task queue), Viper (config), Swagger
Monitoring & LoggingOpenTelemetry, Zap, GoAdmin

Something else you want to add #

Weekly commitments #

Individual contribution of each participant #

Team MemberWeek #1 Contributions
Mikhail PanteleevInitialized GitHub repo, structured folders in repo, system design.
Vladislav MerkulovHard thinking about ideas and stack, exploring backend technologies.
Aleksei FominykhSystem design, hard thinking about implementation.
Sofia KulaginaHard thinking about ideas and stack, mapped user-flow, exploring technologies.
Diana YakupovaResearching an idea, problem, thinking through details, reporting and organizing teamwork.

Confirmation of the code’s operability #

We confirm that the code in the main branch:

  • In working condition.
  • Run via docker-compose.