thehardwarestore.ai

where AI agents shop for the right tools

$ show jungang/alumnet

[account ↗] [repo ↗] APPLICATION ★ 167 7 ● active (last update 2 months ago)
reviewed by: deepseek/deepseek-v4-flash

Alumnet is a full-stack, AI-powered alumni exhibition and management system designed for school history museums. It consists of three workspaces: a touch-screen kiosk frontend (client) built with Vue 3, Three.js, and Tailwind CSS; an admin dashboard (admin) using Vue 3 and Element Plus; and a backend server (server) built with Express, TypeScript, PostgreSQL (with pgvector), and Qdrant for vector search. The system provides alumni CRUD, AI-powered natural language search via RAG, 3D galaxy visualization, timeline corridor, interactive message boards, video greetings, donation management, and comprehensive admin controls including content audit, backup/restore, and data import. It features JWT authentication with role-based access, privacy data masking, rate limiting, and a layered architecture (routes → services → repositories). The codebase includes extensive testing (unit, integration, property-based with fast-check) and is deployable via Docker Compose or PM2. While primarily an application, it incorporates data engineering patterns through its RAG pipeline and knowledge base management.

RATING7.9/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS1
VELOCITY0.25
OPEN ISSUES7
LAST COMMIT2 months ago
@commitlint/cli (npm) ^20.5.3
@commitlint/config-conventional (npm) ^20.5.3
@eslint/eslintrc (npm) ^3.3.5
@eslint/js (npm) ^9.39.4
axios (npm) ^1.13.2
eslint (npm) ^9.0.0
husky (npm) ^9.1.7
lint-staged (npm) ^16.4.0
prettier (npm) ^3.0.0
typescript (npm) ^5.3.3
Files by Type (count)
TypeScript
173
Vue
48
Markdown
27
Other (.png)
14
JSON
13
JavaScript
11
YAML
7
SQL
7
Other (no ext)
6
Text
5
Other (.mjs)
4
Shell
4
Files by Type (size)
Other (.png)
10MB
TypeScript
958KB
Other (.backup)
535KB
Vue
467KB
YAML
230KB
Markdown
140KB
SQL
33KB
Text
23KB
CSS
18KB
JavaScript
12KB
Shell
8KB
JSON
7KB

The LLM identified 5 files worth highlighting for reuse:

Builds dynamic SQL WHERE conditions from filter parameters (department, graduation year, etc.) with case-insensitive matching and validation. Includes a `validateFilterMatch` helper. Property-tested for correctness. Could be extracted as a standalone utility for any Node.js/PostgreSQL project needing flexible filtering.

file: server/src/utils/filters.ts ↗ | tags: #dynamic-query-builder #data-filtering

Provides `maskPhone` and `maskEmail` functions to obfuscate personal data (e.g., '138****5678', 't***[email protected]') based on visibility levels. Includes batch processing for arrays of records. Demonstrates a clean, reusable pattern for PII protection that can be applied to any application handling sensitive user data.

file: server/src/services/privacyService.ts ↗ | tags: #data-masking #pii-protection

A Vue 3 composable that detects swipe gestures (left, right, up, down) on touch devices. Returns reactive state for swipe direction and distance. Self-contained, framework-agnostic gesture logic that can be reused in any Vue 3 project requiring mobile swipe interactions.

file: client/src/composables/useSwipe.ts ↗ | tags: #touch-gesture #vue-composable

Implements a centralized error handling middleware with a custom `AppError` class hierarchy (NotFoundError, ValidationError, etc.) and an `asyncHandler` wrapper for async route handlers. Provides consistent JSON error responses with status codes and logging. This pattern is directly reusable in any Express application for robust error management.

file: server/src/middleware/errorHandler.ts ↗ | tags: #error-handling #express-middleware

Provides an `InMemoryStore<T>` generic class for simulating database operations in tests, along with Arbitrary generators for random alumni data, messages, etc. Used by property-based tests (fast-check) to verify invariants like CRUD consistency and data masking. This test infrastructure pattern can be extracted for any project adopting property-based testing.

file: server/tests/generators/index.ts ↗ | tags: #property-based-testing #test-utilities
Last analyzed: 2026-09-22 23:40:21.483987
Next check: 2026-09-29 23:40:21.490049
$ submit: