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_naufal-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_naufal-0.1.0-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: formguard_naufal-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_naufal-0.1.0.tar.gz
Algorithm Hash digest
SHA256 36a8460a60687037a4ccf9217eedfdb168b406f9695055649d7d50fa0ce5f470
MD5 cdf8423d16358e3df4478893d05f1188
BLAKE2b-256 b7cd02cd2e57ad7367df4ec3f89b427de2de5bdf300606b4b992137ccf151619

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for formguard_naufal-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 39aadc478758d08a64c76685ee36d2c43f523ece5eea84933798456c058d1746
MD5 cf226db78ad34ac6d275295c02ebd1e7
BLAKE2b-256 ccf08f08d6c3238c61e59da723a3decbd9e38a55f2a7a873395233ada9dda926

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