{"id":25932171,"url":"https://github.com/xriot45/disciline_backend","last_synced_at":"2026-02-11T06:34:02.865Z","repository":{"id":312488955,"uuid":"826366034","full_name":"xRiot45/disciline_backend","owner":"xRiot45","description":"Discipline is a Student Violation Information System (SIPSS) application that aims to record, manage, and report violations committed by students in the school environment.","archived":false,"fork":false,"pushed_at":"2024-07-08T14:21:17.000Z","size":250,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-08-31T01:37:39.258Z","etag":null,"topics":["backend","mysql","nestjs","rest-api","typescript"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xRiot45.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-07-09T15:11:29.000Z","updated_at":"2025-08-03T15:28:21.000Z","dependencies_parsed_at":"2025-08-31T01:37:41.870Z","dependency_job_id":"90b3ff98-2c34-4dcf-8807-7098ac7b6259","html_url":"https://github.com/xRiot45/disciline_backend","commit_stats":null,"previous_names":["xriot45/disciline_backend"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/xRiot45/disciline_backend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xRiot45%2Fdisciline_backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xRiot45%2Fdisciline_backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xRiot45%2Fdisciline_backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xRiot45%2Fdisciline_backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xRiot45","download_url":"https://codeload.github.com/xRiot45/disciline_backend/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xRiot45%2Fdisciline_backend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29328261,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T06:13:03.264Z","status":"ssl_error","status_checked_at":"2026-02-11T06:12:55.843Z","response_time":97,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backend","mysql","nestjs","rest-api","typescript"],"created_at":"2025-03-04T00:16:24.941Z","updated_at":"2026-02-11T06:34:02.850Z","avatar_url":"https://github.com/xRiot45.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"#\" target=\"blank\"\u003e\u003cimg src=\"./assets/images/logo_light.png\" width=\"90\" alt=\"NoteMatic Logo\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eDisciline RESTful API\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\n## Description\n\nDisciline adalah aplikasi Sistem Informasi Pelanggaran Siswa (SIPS) yang bertujuan untuk mencatat, mengelola, dan melaporkan pelanggaran yang dilakukan siswa di lingkungan sekolah.\n\n- **Version :** v1.0.0\n- **Developer :** Rumah Kodingku\n- **Released On :** July 04, 2024\n- **Status :** Stable Release\n- **Contact :** [rumahkodingku45@gmail.com](mailto:rumahkodingku45@gmail.com)\n\n## Contents\n\n1. [Description](#description)\n2. [System Requirements](#system-requirements)\n3. [Tech Stack](#tech-stack)\n4. [Security](#security)\n5. [Installation](#installation)\n6. [Setup Environment Variable](#setup-environtment-variable)\n7. [Project Structure](#project-structure)\n8. [Running the App](#running-the-app)\n9. [API Endpoints](#api-endpoints)\n   - [Users API](#users-api)\n   - [Agama API](#agama-api)\n   - [Tipe Pelanggaran API](#tipe-pelanggaran-api)\n   - [Status API](#status-api)\n   - [Jabatan API](#jabatan-api)\n   - [Golongan API](#golongan-api)\n   - [Pendidikan API](#pendidikan-api)\n   - [Jurusan API](#jurusan-api)\n   - [Guru API](#guru-api)\n   - [Kelas API](#kelas-api)\n   - [Siswa API](#siswa-api)\n   - [Pelanggaran API](#pelanggaran-api)\n10. [Authorization](#authorization)\n11. [API Documentation](#api-documentation)\n\n## System Requirements\n\n- Linux, Windows or MacOS\n- Node.js v14 or later\n- MySQL 5.7 or later\n- npm (Node Package Manager)\n\n## Tech Stack\n\n- Nest JS\n- Type ORM\n- MySQL\n- TypeScript\n- Node JS\n\n## Security\n\n- Authentication\n- Encryption and Hasing\n- Authorization\n- Cors\n- Rate Limiting\n- Helmet\n\n## Installation\n\n```bash\n# Navigate to project repository\n$ cd disciline_backend\n\n# Install all dependencies\n$ npm install\n```\n\n## Setup Environment Variable\n\n```bash\n# Change name file\n$ cp .env.example .env\n\n# Environment\nPORT= # Your Port RESTful API\nDATABASE_HOST= # Your Host Database\nDATABASE_PORT= # Your Port Database\nDATABASE_USERNAME= # Your Username Database\nDATABASE_PASSWORD= # Your Password Database\nDATABASE_SYNCHRONIZE= # Your Synchronize Database\nJWT_SECRET= # Your Secret Key JWT\n```\n\n## Project Structure\n\n```plaintext\nNoteMatic/\n|-- assets/                                         \t# Assets file\n|-- docs/  \t\t\t\t\t\t# Documentation file\n|-- dist/                                           \t# Distribution file\n|-- node_modules/                                   \t# Node.js modules\n|-- src/\n|   |-- api/                                        \t# API application\n|   |   |-- guru/                           \t\t# Guru API\n|   |   |   |-- dto/                                \t# Data transfer object (dto)\n|   |   |   |-- entities/                           \t# Entity tabel\n|   |   |   |-- guru.controller.ts\n|   |   |   |-- guru.module.ts\n|   |   |   |-- guru.service.ts\n|   |   |   |-- guru.validation.ts\n|   |   |-- kelas/                        \t\t# Kelas API\n|   |   |   |-- dto/                                \t# Data transfer object (dto)\n|   |   |   |-- entities/                           \t# Entity tabel\n|   |   |   |-- kelas.controller.ts\n|   |   |   |-- kelas.module.ts\n|   |   |   |-- kelas.service.ts\n|   |   |   |-- kelas.validation.ts\n|   |   |-- master/                                 \t# Master API application\n|   |   |   |-- agama/\t\t\t\t\t# Agama API\n|   |   |   |\t|-- dto/\t\t\t\t# Data transfer object (dto)\n|   |   |   |\t|-- entities/\t\t\t\t# Entity tabel\n|   |   |   |\t|-- agama.controller.ts\n|   |   |   |\t|-- agama.module.ts\n|   |   |   |\t|-- agama.validation.ts\n|   |   |   |-- golongan/\t\t\t\t# Golongan API\n|   |   |   |\t|-- dto/\t\t\t\t# Data transfer object (dto)\n|   |   |   |\t|-- entities/\t\t\t\t# Entity tabel\n|   |   |   |\t|-- golongan.controller.ts\n|   |   |   |\t|-- golongan.module.ts\n|   |   |   |\t|-- golongan.validation.ts\n|   |   |   |-- jabatan/\t\t\t\t# Jabatan API\n|   |   |   |\t|-- dto/\t\t\t\t# Data transfer object (dto)\n|   |   |   |\t|-- entities/\t\t\t\t# Entity tabel\n|   |   |   |\t|-- jabatan.controller.ts\n|   |   |   |\t|-- jabatan.module.ts\n|   |   |   |\t|-- jabatan.validation.ts\n|   |   |   |-- jurusan/\t\t\t\t# Jurusan API\n|   |   |   |\t|-- dto/\t\t\t\t# Data transfer object (dto)\n|   |   |   |\t|-- entities/\t\t\t\t# Entity tabel\n|   |   |   |\t|-- jurusan.controller.ts\n|   |   |   |\t|-- jurusan.module.ts\n|   |   |   |\t|-- jurusan.validation.ts\n|   |   |   |-- pendidikan/\t\t\t\t# Pendidikan API\n|   |   |   |\t|-- dto/\t\t\t\t# Data transfer object (dto)\n|   |   |   |\t|-- entities/\t\t\t\t# Entity tabel\n|   |   |   |\t|-- pendidikan.controller.ts\n|   |   |   |\t|-- pendidikan.module.ts\n|   |   |   |\t|-- pendidikan.validation.ts\n|   |   |   |-- status/\t\t\t\t\t# Status API\n|   |   |   |\t|-- dto/\t\t\t\t# Data transfer object (dto)\n|   |   |   |\t|-- entities/\t\t\t\t# Entity tabel\n|   |   |   |\t|-- status.controller.ts\n|   |   |   |\t|-- status.module.ts\n|   |   |   |\t|-- status.validation.ts\n|   |   |   |-- tipe-pelanggaran/\t\t\t# Tipe Pelanggaran API\n|   |   |   |\t|-- dto/\t\t\t\t# Data transfer object (dto)\n|   |   |   |\t|-- entities/\t\t\t\t# Entity tabel\n|   |   |   |\t|-- tipe-pelanggaran.controller.ts\n|   |   |   |\t|-- tipe-pelanggaran.module.ts\n|   |   |   |\t|-- tipe-pelanggaran.validation.ts\n|   |   |-- pelanggaran/                           \t# Pelanggaran API\n|   |   |   |-- dto/                                \t# Data transfer object (dto)\n|   |   |   |-- entities/                           \t# Entity tabel\n|   |   |   |-- pelanggaran.controller.ts\n|   |   |   |-- pelanggaran.module.ts\n|   |   |   |-- pelanggaran.service.ts\n|   |   |   |-- pelanggaran.validation.ts\n|   |   |-- siswa/                            \t\t# Siswa API\n|   |   |   |-- dto/                                \t# Data transfer object (dto)\n|   |   |   |-- entities/                           \t# Entity tabel\n|   |   |   |-- siswa.controller.ts\n|   |   |   |-- siswa.module.ts\n|   |   |   |-- siswa.service.ts\n|   |   |   |-- siswa.validation.ts\n|   |   |-- users/                                  \t# Users API\n|   |   |   |-- dto/                                \t# Data transfer object (dto)\n|   |   |   |-- entities/                           \t# Entity tabel\n|   |   |   |-- users.controller.ts\n|   |   |   |-- users.module.ts\n|   |   |   |-- users.service.ts\n|   |   |   |-- users.validation.ts\n|   |   |-- api.module.ts                           \t# API module\n|   |-- common/                                     \t# Common file\n|   |   |-- database/\n|   |   |-- decorator/\n|   |   |-- dto/\n|   |   |-- error/\n|   |   |-- guard/\n|   |   |-- libs/\n|   |   |-- middleware/\n|   |   |-- strategy/\n|   |   |-- validation/\n|   |   |-- common.module.ts                        \t# Module common\n|   |-- app.module.ts                               \t# Root module for the application\n|   |-- main.ts                                     \t# Entry point for the application\n|-- .env                                            \t# Environment variables\n|-- .eslintrc.js                                    \t# Eslint file\n|-- .gitignore                                      \t# Git ignore file\n|-- .prettier                                       \t# Prettier formater file\n|-- nest-cli.json                                   \t# NestJS configuration\n|-- package-lock.json                               \t# Exact version dependencies\n|-- package.json                                    \t# Node.js project metadata\n|-- README.md                                       \t# Project README file\n|-- tsconfig.build.json                             \t# TypeScript build configuration\n|-- tsconfig.json                                   \t# TypeScript configuration\n```\n\n## Running The App\n\n```bash\n# watch mode\n$ npm run start\n\n# development mode\n$ npm run start:dev\n\n# production mode\n$ npm run start:prod\n```\n\n## API Endpoints\n\n### Users API\n\n|         Summary          |          Endpoint          | Method | Authorization |\n| :----------------------: | :------------------------: | :----: | :-----------: |\n|       Sign up user       |     /api/users/signup      |  POST  |       -       |\n|       Sign in user       |     /api/users/signin      |  POST  |       -       |\n| Get data user with token |         /api/users         |  GET   | Bearer Token  |\n|     Update password      | /api/users/update-password |  PUT   | Bearer Token  |\n|      Sign out user       |     /api/users/signout     | DELETE | Bearer Token  |\n\n### Agama API\n\n|       Summary        |          Endpoint           | Method | Authorization |\n| :------------------: | :-------------------------: | :----: | :-----------: |\n|     Create Agama     |      /api/master/agama      |  POST  | Bearer Token  |\n|  Get All Data Agama  |      /api/master/agama      |  GET   | Bearer Token  |\n| Get Data Agama By ID | /api/master/agama/{agamaId} |  GET   | Bearer Token  |\n|     Update Agama     | /api/master/agama/{agamaId} |  PUT   | Bearer Token  |\n|     Delete Agama     | /api/master/agama/{agamaId} | DELETE | Bearer Token  |\n\n### Tipe Pelanggaran API\n\n|             Summary             |                     Endpoint                     | Method | Authorization |\n| :-----------------------------: | :----------------------------------------------: | :----: | :-----------: |\n|     Create Tipe Pelanggaran     |           /api/master/tipe-pelanggaran           |  POST  | Bearer Token  |\n|  Get All Data Tipe Pelanggaran  |           /api/master/tipe-pelanggaran           |  GET   | Bearer Token  |\n| Get Data Tipe Pelanggaran By ID | /api/master/tipe-pelanggaran/{tipePelanggaranId} |  GET   | Bearer Token  |\n|     Update Tipe Pelanggaran     | /api/master/tipe-pelanggaran/{tipePelanggaranId} |  PUT   | Bearer Token  |\n|     Delete Tipe Pelanggaran     | /api/master/tipe-pelanggaran/{tipePelanggaranId} | DELETE | Bearer Token  |\n\n### Status API\n\n|        Summary        |           Endpoint            | Method | Authorization |\n| :-------------------: | :---------------------------: | :----: | :-----------: |\n|     Create Status     |      /api/master/status       |  POST  | Bearer Token  |\n|  Get All Data Status  |      /api/master/status       |  GET   | Bearer Token  |\n| Get Data Status By ID | /api/master/status/{statusId} |  GET   | Bearer Token  |\n|     Update Status     | /api/master/status/{statusId} |  PUT   | Bearer Token  |\n|     Delete Status     | /api/master/status/{statusId} | DELETE | Bearer Token  |\n\n### Jabatan API\n\n|        Summary         |            Endpoint             | Method | Authorization |\n| :--------------------: | :-----------------------------: | :----: | :-----------: |\n|     Create Jabatan     |       /api/master/jabatan       |  POST  | Bearer Token  |\n|  Get All Data Jabatan  |       /api/master/jabatan       |  GET   | Bearer Token  |\n| Get Data Jabatan By ID | /api/master/jabatan/{jabatanId} |  GET   | Bearer Token  |\n|     Update Jabatan     | /api/master/jabatan/{jabatanId} |  PUT   | Bearer Token  |\n|     Delete Jabatan     | /api/master/jabatan/{jabatanId} | DELETE | Bearer Token  |\n\n### Golongan API\n\n|         Summary         |             Endpoint              | Method | Authorization |\n| :---------------------: | :-------------------------------: | :----: | :-----------: |\n|     Create Golongan     |       /api/master/golongan        |  POST  | Bearer Token  |\n|  Get All Data Golongan  |       /api/master/golongan        |  GET   | Bearer Token  |\n| Get Data Golongan By ID | /api/master/golongan/{golonganId} |  GET   | Bearer Token  |\n|     Update Golongan     | /api/master/golongan/{golonganId} |  PUT   | Bearer Token  |\n|     Delete Golongan     | /api/master/golongan/{golonganId} | DELETE | Bearer Token  |\n\n### Pendidikan API\n\n|          Summary          |               Endpoint                | Method | Authorization |\n| :-----------------------: | :-----------------------------------: | :----: | :-----------: |\n|     Create Pendidikan     |        /api/master/pendidikan         |  POST  | Bearer Token  |\n|  Get All Data Pendidikan  |        /api/master/pendidikan         |  GET   | Bearer Token  |\n| Get Data Pendidikan By ID | /api/master/pendidikan/{pendidikanId} |  GET   | Bearer Token  |\n|     Update Pendidikan     | /api/master/pendidikan/{pendidikanId} |  PUT   | Bearer Token  |\n|     Delete Pendidikan     | /api/master/pendidikan/{pendidikanId} | DELETE | Bearer Token  |\n\n### Jurusan API\n\n|        Summary         |            Endpoint             | Method | Authorization |\n| :--------------------: | :-----------------------------: | :----: | :-----------: |\n|     Create Jurusan     |       /api/master/jurusan       |  POST  | Bearer Token  |\n|  Get All Data Jurusan  |       /api/master/jurusan       |  GET   | Bearer Token  |\n| Get Data Jurusan By ID | /api/master/jurusan/{jurusanId} |  GET   | Bearer Token  |\n|     Update Jurusan     | /api/master/jurusan/{jurusanId} |  PUT   | Bearer Token  |\n|     Delete Jurusan     | /api/master/jurusan/{jurusanId} | DELETE | Bearer Token  |\n\n### Guru API\n\n|       Summary       |      Endpoint      | Method | Authorization |\n| :-----------------: | :----------------: | :----: | :-----------: |\n|     Create Guru     |     /api/guru      |  POST  | Bearer Token  |\n|  Get All Data Guru  |     /api/guru      |  GET   | Bearer Token  |\n| Get Data Guru By ID | /api/guru/{guruId} |  GET   | Bearer Token  |\n|     Update Guru     | /api/guru/{guruId} | PATCH  | Bearer Token  |\n|     Delete Guru     | /api/guru/{guruId} | DELETE | Bearer Token  |\n\n### Kelas API\n\n|       Summary        |       Endpoint       | Method | Authorization |\n| :------------------: | :------------------: | :----: | :-----------: |\n|     Create Kelas     |      /api/kelas      |  POST  | Bearer Token  |\n|  Get All Data Kelas  |      /api/kelas      |  GET   | Bearer Token  |\n| Get Data Kelas By ID | /api/kelas/{kelasId} |  GET   | Bearer Token  |\n|     Update Kelas     | /api/kelas/{kelasId} | PATCH  | Bearer Token  |\n|     Delete Kelas     | /api/kelas/{kelasId} | DELETE | Bearer Token  |\n\n### Siswa API\n\n|       Summary        |       Endpoint       | Method | Authorization |\n| :------------------: | :------------------: | :----: | :-----------: |\n|     Create Siswa     |      /api/siswa      |  POST  | Bearer Token  |\n|  Get All Data Siswa  |      /api/siswa      |  GET   | Bearer Token  |\n| Get Data Siswa By ID | /api/siswa/{siswaId} |  GET   | Bearer Token  |\n|     Update Siswa     | /api/siswa/{siswaId} | PATCH  | Bearer Token  |\n|     Delete Siswa     | /api/siswa/{siswaId} | DELETE | Bearer Token  |\n\n### Pelanggaran API\n\n|         Summary          |             Endpoint             | Method | Authorization |\n| :----------------------: | :------------------------------: | :----: | :-----------: |\n|    Create Pelanggaran    |         /api/pelanggaran         |  POST  | Bearer Token  |\n| Get All Data Pelanggaran |         /api/pelanggaran         |  GET   | Bearer Token  |\n|  Get Pelanggaran By ID   | /api/pelanggaran/{pelanggaranId} |  GET   | Bearer Token  |\n|    Update Pelanggaran    | /api/pelanggaran/{pelanggaranId} | PATCH  | Bearer Token  |\n\n## Authorization\n\nUse the following steps to get an authorization token:\n\n- Log in using the /api/users/signin endpoints.\n- Use the token received in the response to authorize further requests.\n\n## API Documentation\n\n- http://{your_url}/api/documentation\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxriot45%2Fdisciline_backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxriot45%2Fdisciline_backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxriot45%2Fdisciline_backend/lists"}