User Admin System

01-04-2025Vue 3, Go, Docker, Gin, Logrus, MongoDB, REST, ElementPlus, vue-i18n, VeeValidate + Yup

← Back to Projects

User Admin is a self-contained full-stack system for managing users, built with a clean API and modern frontend stack.

It features:

Frontend (Vue 3 + Vite)

Tech Stack

  • Framework: Vue 3 (Composition API)
  • Bundler: Vite
  • UI Library: Element Plus(users table and pagination)
  • Validation: VeeValidate + Yup
  • State Management: Pinia
  • Styling: Scoped CSS + Element Plus
  • Internationalization: vue-i18n
  • Language: TypeScript
  • Containerization: Docker

Features

  • User CRUD: Create, read, update, and delete user records.
  • Form validation: Schema-based validation with VeeValidate and Yup.
  • Internationalization (i18n): Available in English, Maltese, and Serbian.
  • Dark/light theme: Toggleable theme with persisted state.
  • Mobile-friendly: Fully responsive layout with clean design.
  • Modern stack: Vue 3 Composition API with TypeScript.
  • Modular architecture: Scalable, testable, structured code.
  • Dockerized: Utilized Docker setup.

Backend (Go + MongoDB)

Tech Stack

Features

  • GET /users – List users with pagination and optional search
  • POST /users – Create new user (email must be unique, age > 18)
  • GET /users/:id – Get single user by ID
  • PUT /users/:id – Update user by ID (validates email uniqueness)
  • DELETE /users/:id – Delete user by ID
  • Modular architecture for easy database replacement
  • Unit tests for core service logic
  • Request logging via Logrus
  • Input validation using validator

This project was built as a complete example of modular, production-ready full-stack architecture — and serves as a practical showcase of my ability to work across the stack.