Skip to content

NandaFebian/workorder-portal

Repository files navigation

Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications.

NPM Version Package License NPM Downloads CircleCI Discord Backers on Open Collective Sponsors on Open Collective Donate us Support us Follow us on Twitter

Work Order Portal - Backend

Ini adalah backend untuk aplikasi Work Order Portal yang dibangun menggunakan framework NestJS. Aplikasi ini dirancang untuk mengelola perusahaan, pengguna, layanan, formulir, dan alur kerja terkait.


✨ Fitur Utama

  • Autentikasi & Otorisasi: Registrasi pengguna (Client, Staff), registrasi perusahaan beserta pemiliknya, login, logout, pengambilan profil pengguna. Menggunakan token-based authentication dan role-based access control (RBAC).
  • Manajemen Perusahaan: Pembuatan perusahaan baru, update informasi perusahaan, pengelolaan karyawan (undangan, daftar karyawan), endpoint publik untuk melihat perusahaan dan layanannya.
  • Manajemen Pengguna & Role: Pengelolaan pengguna dengan role berbeda (Client, App Admin, Company Owner, Company Manager, Company Staff, Unassigned Staff).
  • Manajemen Posisi: Pembuatan, pembaruan, penghapusan, dan pengambilan daftar posisi (global dan spesifik perusahaan). Seeder untuk posisi default.
  • Manajemen Layanan (Services):
    • Pembuatan dan pembaruan layanan dengan sistem versi (__v).
    • Asosiasi formulir (Intake, Work Order, Report) ke layanan dengan urutan dan kontrol akses berbasis role/posisi.
    • Pengelolaan staf yang dibutuhkan untuk setiap layanan.
    • Endpoint internal untuk manajemen layanan (CRUD) dan endpoint publik untuk melihat detail layanan dan formulir intake.
    • Helper agregasi MongoDB untuk pengambilan data layanan yang efisien dan terstruktur.
  • Manajemen Formulir (Forms):
    • Pembuatan template formulir dinamis (Intake, Work Order, Report) dengan berbagai tipe field (teks, angka, pilihan, dll.).
    • Pembaruan template formulir dengan sistem versi menggunakan formKey dan __v.
    • Pengajuan (submission) formulir oleh pengguna terautentikasi dan pengguna publik (untuk intake form).
  • Struktur Respons Standar: Menggunakan Interceptor untuk format respons sukses yang konsisten dan Filter untuk menangani exception dan format respons error (termasuk validasi).
  • Validasi Input: Menggunakan class-validator dan ValidationPipe global untuk memastikan integritas data DTO.
  • Konfigurasi: Menggunakan @nestjs/config untuk manajemen variabel lingkungan.

🛠️ Tech Stack

  • Framework: NestJS (@nestjs/core)
  • Bahasa: TypeScript
  • Database: MongoDB
  • ODM: Mongoose (@nestjs/mongoose)
  • Validasi: class-validator, class-transformer
  • Autentikasi: bcrypt (hashing password), token-based (custom implementation using UUID)
  • Linting/Formatting: ESLint, Prettier

🚀 Instalasi & Setup Proyek

# Clone repositori
git clone <URL_REPOSITORI_ANDA>
cd workorder-portal-backend # atau nama direktori Anda

# Install dependensi
npm install

# Setup variabel lingkungan
# Buat file .env di root proyek dan tambahkan variabel yang dibutuhkan, contohnya:
# MONGO_URI=mongodb://username:password@host:port/database_name
# PORT=3000 # Opsional, default 3000

About

Backend API for a Work Order Management System built with NestJS, TypeScript, and MongoDB.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors