Skip to main content

Reusable Python form validation library

Project description

๐Ÿ›ก๏ธ FormGuard

FormGuard adalah library Python sederhana untuk melakukan validasi input form seperti email, password, dan username. Library ini dirancang agar reusable, mudah digunakan, dan dapat diintegrasikan ke berbagai project seperti backend API, aplikasi web, maupun sistem lainnya.


โœจ Features

  • ๐Ÿ“ง Validasi Email
  • ๐Ÿ” Validasi Password (strong password)
  • ๐Ÿ‘ค Validasi Username
  • โš ๏ธ Error Handling dengan custom exception
  • โ™ป๏ธ Reusable untuk berbagai project

๐Ÿ“ฆ Instalasi

Gunakan mode development:

pip install -e .

๐Ÿš€ Cara Penggunaan

from formguard import validate_email, validate_password, validate_username

validate_email("test@gmail.com")
validate_password("Password123")
validate_username("user1")

๐Ÿงช Contoh Pengujian

File: test_validator.py

from formguard import validate_email, validate_password, validate_username

data = [
    {"email": "test@gmail.com", "password": "Password123", "username": "user1"},
    {"email": "asal", "password": "pass", "username": "us"},
    {"email": "user@yahoo.com", "password": "StrongPass1", "username": "user_123"},
]

for d in data:
    print("\nTesting data:", d)

    try:
        validate_email(d["email"])
        print("Email โœ… valid")
    except Exception as e:
        print("Email โŒ", e)

    try:
        validate_password(d["password"])
        print("Password โœ… valid")
    except Exception as e:
        print("Password โŒ", e)

    try:
        validate_username(d["username"])
        print("Username โœ… valid")
    except Exception as e:
        print("Username โŒ", e)

๐Ÿ“Š Contoh Output

Testing data: {'email': 'test@gmail.com', 'password': 'Password123', 'username': 'user1'}
Email โœ… valid
Password โœ… valid
Username โœ… valid

Testing data: {'email': 'asal', 'password': 'pass', 'username': 'us'}
Email โŒ Email tidak valid
Password โŒ Password minimal 8 karakter
Username โŒ Username terlalu pendek

Testing data: {'email': 'user@yahoo.com', 'password': 'StrongPass1', 'username': 'user_123'}
Email โœ… valid
Password โœ… valid
Username โŒ Username hanya boleh huruf dan angka

โš™๏ธ Cara Kerja

1. Validasi Email

Menggunakan Regular Expression (Regex) untuk memastikan format:

  • ada @
  • ada domain
  • ada ekstensi (contoh: .com)

2. Validasi Password

Password harus memenuhi kriteria:

  • minimal 8 karakter
  • mengandung huruf besar (A-Z)
  • mengandung huruf kecil (a-z)
  • mengandung angka (0-9)

3. Validasi Username

  • minimal 3 karakter
  • hanya huruf dan angka (tanpa simbol)

4. Error Handling

Jika input tidak valid, akan muncul error:

ValidationError: Email tidak valid

๐ŸŽฏ Tujuan Library

FormGuard dibuat untuk:

  • โœ… Memvalidasi input user sebelum diproses
  • โœ… Mengurangi kesalahan input (invalid data)
  • โœ… Membantu developer dengan fungsi siap pakai
  • โœ… Digunakan ulang di berbagai project

๐ŸŒ Use Case (Penggunaan Nyata)

  • ๐Ÿ” Sistem Login & Register
  • ๐ŸŒ Backend API (Flask, FastAPI, Django)
  • ๐Ÿ“ฑ Aplikasi Mobile (via backend)
  • ๐Ÿงพ Form input data pengguna

๐Ÿ“ Struktur Project

formguard_project/
โ”‚
โ”œโ”€โ”€ formguard/
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ validators.py
โ”‚   โ”œโ”€โ”€ sanitizers.py
โ”‚   โ”œโ”€โ”€ utils.py
โ”‚   โ”œโ”€โ”€ exceptions.py
โ”‚
โ”œโ”€โ”€ pyproject.toml
โ”œโ”€โ”€ setup.py
โ”œโ”€โ”€ README.md

๐Ÿง  Kelebihan

  • โœ” Modular (dipisah per fungsi)
  • โœ” Mudah dikembangkan
  • โœ” Clean code
  • โœ” Sesuai standar Python packaging

๐Ÿ Kesimpulan

FormGuard adalah solusi sederhana namun efektif untuk memastikan bahwa data input user sudah valid sebelum diproses lebih lanjut. Dengan pendekatan modular dan reusable, library ini dapat digunakan di berbagai jenis aplikasi.


๐Ÿ‘จโ€๐Ÿ’ป Author

Naufal


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

formguard-0.1.0.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

formguard-0.1.0-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

Details for the file formguard-0.1.0.tar.gz.

File metadata

  • Download URL: formguard-0.1.0.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.1

File hashes

Hashes for formguard-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2531e0a20cb044bc8b25f334783ba8a4a2fafa1e733a3982f363674b5ee1c5f6
MD5 09640a8901fa099ff6c6048131dc263e
BLAKE2b-256 3dc4997add184fee6d36556f7a79b115ac44e4184e394329cb2366a0b0097c17

See more details on using hashes here.

File details

Details for the file formguard-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: formguard-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.1

File hashes

Hashes for formguard-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4da8eea0d908cf502fce8e33224966ea72dc1c8842a347426bee8f5bc9268e50
MD5 c34abcaafcffc0d1e1ddac27040dcb3c
BLAKE2b-256 da912488ea290b33e83c3f114fdb8851bb35176707ab9e8b771ed7477af26974

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page