A convenient website for managing volunteer campaigns, activity resources, and item borrowing workflows, ... (more features coming soon).
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.
- 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.
- Framework: FastAPI
- ORM & Database: SQLModel, SQLAlchemy, SQLite (Development) / PostgreSQL (Production)
- Authentication: OAuth2 with Password Hashing (Bcrypt) and JWT Tokens
- Server: Uvicorn
Follow these steps to set up the project locally.
- Python 3.9 or higher
- pip3 (Python package installer)
- Clone the repository:
git clone cd OVC_APP - Set up a virtual environment:
source venv/bin/activate or venv\Scripts\activate for Win users
- Install dependencies:
- Environment Variables:
SECRET_KEY=your_super_secret_jwt_key ALGORITHM=HS256 ACCESS_TOKEN_EXPIRE_MINUTES=30 DATABASE_URL=sqlite:///./database.db - Run the development server:
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.
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.