Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

(OISP) Volunteer Club (ERP) Website (System)

A convenient website for managing volunteer campaigns, activity resources, and item borrowing workflows, ... (more features coming soon).

Python FastAPI SQLModel JWT

Overview

Volunteer ERP Core System is an enterprise-grade service designed to streamline the management of volunteer clubs. Built with FastAPI and SQLModel, it focuses on high performance, strict data integrity, and complex authorization layers to handle campaigns, activities, and resource.

Key Features

  • Advanced Role-Based Access Control (RBAC): Multi-tiered authorization (Admin, Campaign Leader, Activity Leader, Participant) protecting cross-referenced resources and preventing IDOR vulnerabilities.
  • State Machine Workflow: Strict lifecycle management for item borrowing (Pending -> Approved -> Borrowed -> Returned) preventing race conditions and overbooking.
  • RESTful API Architecture: Clean, well-documented, and highly optimized endpoints utilizing Dependency Injection.
  • Database Integrity: Robust relational schema design enforcing constraint checks and cascading operations.

Tech Stack

  • Framework: FastAPI
  • ORM & Database: SQLModel, SQLAlchemy, SQLite (Development) / PostgreSQL (Production)
  • Authentication: OAuth2 with Password Hashing (Bcrypt) and JWT Tokens
  • Server: Uvicorn

Getting Started

Follow these steps to set up the project locally.

Prerequisites

  • Python 3.9 or higher
  • pip3 (Python package installer)

Installation

  1. Clone the repository:
    git clone
    cd OVC_APP
    
  2. Set up a virtual environment:
    source venv/bin/activate or venv\Scripts\activate for Win users
  3. Install dependencies:
    
    
  4. Environment Variables:
        SECRET_KEY=your_super_secret_jwt_key
        ALGORITHM=HS256
        ACCESS_TOKEN_EXPIRE_MINUTES=30
        DATABASE_URL=sqlite:///./database.db
    
    
  5. Run the development server:
    
    

API Documentation

Swagger UI: Navigate to http://localhost:8000/docs to test endpoints directly from your browser.
ReDoc: Navigate to http://localhost:8000/redoc for an alternative, highly readable documentation format.

Version

1.0: Initial commit, BE build with CRUD + RBAC + JWTauth + little Middleware. Next update will integrate Google Workspace API features.
    1.0.1: Successfully integrated Google Drive API with OAuth 2.0 authentication via Google Accounts. Automated the generation and mapping of Google Drive folders in Campaign and Activity. Enabled direct creation of Docs and Sheets from the system, syncing to the user's Google Drive.

About

a club website for managing volunteer campaigns, activity resources, and item borrowing workflows,...

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages