explaingit

lkdenchin/etu-smart-cabinet

1VueAudience · developerComplexity · 4/5ActiveLicenseSetup · hard

TLDR

Student smart-locker system with ESP32-C3 hardware, an Express backend, a UniApp mobile app, and a Vue 3 admin panel. Pickup uses NFC tags or codes with anti-theft sensing.

Mindmap

mindmap
  root((ETU-Smart-Cabinet))
    Inputs
      Pickup codes
      NFC tag taps
      Photoelectric sensor
    Outputs
      Slot status
      Theft warnings
      Admin charts
    Use Cases
      Campus parcel locker
      NFC pickup flow
      Anti-theft alerts
    Tech Stack
      ESP32
      Express
      Vue
      UniApp
      MySQL

Things people build with this

USE CASE 1

Build a campus or lobby parcel locker with NFC pickup

USE CASE 2

Wire ESP32-C3 with a PN532 NFC module and a photoelectric sensor for slot detection

USE CASE 3

Run the admin panel with ECharts to monitor slot status and theft warnings

USE CASE 4

Use UniApp to ship one mobile codebase across iOS and Android

Tech stack

ESP32ExpressVueUniAppMySQLJWT

Getting it running

Difficulty · hard Time to first run · 1day+

Need ESP32-C3 hardware with a PN532 NFC module and photoelectric sensor plus MySQL and four codebases wired together.

MIT lets anyone use, copy, modify, and redistribute the code as long as the original copyright notice stays.

In plain English

This project, whose Chinese name translates roughly to Easy Pickup Treasure, is a student-style smart locker system that combines real hardware with a mobile app and a web admin panel. The idea is the kind of pickup locker bank you see in apartment lobbies or campus mail rooms: someone leaves an item inside one of several small compartments, the recipient gets a pickup code, and the compartment opens for them. The README is in Chinese, with an English version linked from the top. There are four pieces. A Node.js backend built with Express runs on port 1145 and stores everything in a MySQL or MariaDB database; user logins are handled with JWT tokens. A mobile app built with UniApp (a cross-platform framework based on Vue) is the user-facing surface, with 24 pages covering deposit, pickup, history, themes, customization, and a small community section. A separate web admin panel uses Vue 3, Vite, Element Plus, and ECharts for charts. The cabinet itself runs on an ESP32-C3 microcontroller with two attached components: a photoelectric (light-beam) sensor to tell whether a slot has something in it, and a PN532 NFC module that can write tags. The deposit workflow goes like this. The user picks a cabinet and a slot in the app. The backend generates a pickup code and an NFC ID. The ESP32 writes the recipient's phone number to a physical NFC tag. The depositor places the item in the slot, the light sensor sees that the slot is now occupied, and the database flips the slot to occupied. To collect, the recipient either taps the NFC tag on the cabinet or types the pickup code; the server confirms it; the sensor sees the slot become empty and marks it available. The anti-theft feature uses the same sensor. If a slot goes from occupied to empty without a matching pickup request on file, the system automatically files a theft warning that the admin panel can review and resolve. The community area has discussion, feedback, activity, and customization tabs where users can submit orders for custom cabinet designs. The project is released under the MIT license.

Copy-paste prompts

Prompt 1
Flash the ESP32-C3 firmware and connect it to the Express backend on port 1145
Prompt 2
Set up MySQL and run the deposit-to-pickup workflow end to end in dev
Prompt 3
Adapt the anti-theft sensor logic so it tolerates short power blips
Prompt 4
Translate the Chinese README sections that cover the deposit and pickup workflow
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.