The Embedded EDU Platform is a Vue.js frontend connected to a Node.js backend API. It is designed to support embedded-systems education through a project-based learning workflow, project evaluations, and progress tracking.
The platform contains four primary user-facing pages:
- Login Page (
Login.vue) - Home Dashboard (
Home.vue) - Project Graph (
Graph.vue) - Project Details (
ProjectDetails.vue) - Settings Page (
Settings.vue)
Allows a user to authenticate using:
- UID
- Password
When the Login button is pressed:
POST /auth/loginIf authentication succeeds:
- JWT token is stored in
localStorage - User UID is stored in
localStorage - User is redirected to
/home
If authentication fails:
- Error message is displayed
Main platform dashboard.
Displays:
- User profile
- XP
- Level
- Rank
- EVP (Evaluation Points)
- Online users
- User projects
- Assigned evaluations
When the page loads:
GET /users/:uidThe application loads:
- Current user
- User projects
- Online users
- Assigned evaluations
The user is automatically marked as:
is_online = 1and marked offline on logout or browser close.
Displays:
- Avatar
- Name
- UID
- Progress
- XP
- Rank
- EVP
Selecting another user:
GET /users/:uid
GET /projects/:uidallows viewing:
- Profile
- Projects
- Progress
Users can enable:
Ready for evaluation
which allows the platform to assign project reviews to them.
Assigned evaluators can:
- Open project
- Enter score
- Enter feedback
- Submit evaluation
Request:
POST /evaluations/{id}/completeEffects:
- Project score recalculated
- Evaluator receives EVP
- Evaluation marked completed
Provides a visual learning roadmap represented as an MCU package.
Supported learning paths:
- ARM
- PIC
- RISCV
- PIC32
Each peripheral becomes a project node:
- GPIO
- ADC
- PWM
- UART
- I2C
- SPI
Projects are loaded from:
GET /projects/:uidThe graph determines:
- Available projects
- Locked projects
- Project scores
| Score | Color |
|---|---|
| >= 85 | Green |
| >= 50 | Yellow |
| < 50 | Red |
| Not Available | Gray |
Selecting a project:
router.push("/projects/{projectId}")opens the Project Details page.
- SVG based visualization
- Zoom support
- Drag/Pan support
- Dynamic project availability
Displays all information related to a project defense.
GET /projects/project/{projectId}
GET /evaluations/project/{projectId}/{uid}- Project image
- Description
- Learning goals
- Requirements
- Current score
- Evaluation statistics
- Evaluation history
Users can download the project documentation PDF.
Project owners may request evaluations.
Requirements:
- Project available
- User owns project
- User has EVP > 0
- Required evaluation count not reached
Request:
POST /evaluations/bookEffects:
- EVP reduced
- Evaluator assigned
- New evaluation created
Displays:
- Evaluator name
- Status
- Score
- Feedback
Allows users to manage their profile.
- Phone
- Birthplace
- Password
- Status
- Avatar
- Ready for evaluation
PUT /users/:uidUpdated fields:
- Personal information
- Avatar
- Password
- Evaluation status
Users may:
- Enter avatar URL manually
- Select predefined avatar from avatar gallery
The evaluation system is the core educational mechanism.
- Student completes project.
- Student spends EVP.
- Evaluation request is created.
- Available evaluator is assigned.
- Evaluator submits score and feedback.
- Project score is recalculated.
- Evaluator receives EVP.
- Encourages peer review.
- Encourages project completion.
- Prevents abuse through EVP limits.
- Supports collaborative learning.
At the moment there are following users created:
| Login | Password | Full Name |
|---|---|---|
| iruzavin | 1234 | Ivan Ruzavin |
| sjacimovic | 1234 | Strahinja Jacimovic |
| szhuikova | 1234 | Sofiia Zhuikova |
| eniksic | 1234 | Esma Niksic |
| pkresoja | 1234 | Petar Kresoja |
| nbacanin | 1234 | Nebojsa Bacanin Dzakula |
| szecic | 1234 | Stevan Zecic |
Install:
cd edu-platform-frontend
bun add axios bootstrap bootstrap-icons vue-flow- Node package manager - https://nodejs.org/en/download
npm install bootstrap-icons
cd ../edu-platform-backend
npm install nodemoncd edu-platform-frontend
npm run devcd edu-platform-backend
node server.js



