Overview
A flexible Document Delivery Service (DDS) portal for libraries, designed to evolve:
- osTicket-style Helpdesk/Ticketing.
- Gmail-based Email Integration.
- DOI/ISBN Metadata Autofill.
- Role-based Access Control (RBAC) for Admin, Staff, Users.
- Institutional profiles, multi-tenancy, groups.
- Customizable admin dashboard for layout, branding, and settings.
- Technology stack designed to support upgrades and integrations.
Core Features, Technologies & Roles
Ticketing System (Helpdesk Module)
Tech: Django, PostgreSQL, Django Channels.
Role:
- User: Submit request tickets.
- Staff: View, update, resolve, attach documents.
- Admin: Full access — manage all tickets, assign staff.
Gmail Integration (Mail Service)
Tech: Gmail API, OAuth2, Django Mailer, Celery.
Role:
- User: Send requests via official email.
- Staff: Communicate with users via email.
- Admin: Configure and manage mail settings.
Tech: CrossRef, Google Books, PubMed, arXiv, Zotero, Requests.
Role:
- User: Enter DOI/ISBN; system fetches metadata.
- Staff: Verify and edit metadata if needed.
- Admin: Manage API keys and integration settings.
Roles & Permissions (RBAC)
Tech: Django Permissions, Groups.
Role:
- Admin: Manage roles, add/remove users, set permissions.
- Staff: Access allowed tickets and reports.
- User: Limited to personal requests and reports.
Institutional & Group Management (Multi-Tenancy)
Tech: Django Tenants, Verified Domains.
Role:
- Admin: Add/edit institutional profiles, verify domains.
- Staff: Create/manage user groups for collaborative requests.
- User: Join groups to share or receive requests.
Admin Customization Dashboard (CMS Module)
Tech: Django Admin, Wagtail or Django Jet.
Role:
- Admin: Customize portal layout, themes, header/footer, logo, branding.
- Staff/User: View changes — no edit access.
Tech: PostgreSQL, Django ORM.
Role:
- User: View personal request history and citations.
- Staff: Use stored metadata to fulfill requests accurately.
- Admin: Access full metadata for reports and compliance.
User Reports & Logs (Reporting Engine)
Tech: Django REST API, ChartJS, Pandas/ReportLab.
Role:
- User: Generate report of personal requests, status, fulfillment.
- Staff: View operational stats for handled tickets.
- Admin: Run detailed usage, department-wise, copyright reports.
Attachments (Secure File Storage)
Tech: Django Storage, AWS S3 or Local Disk.
Role:
- User: Upload reference files.
- Staff: Attach and deliver documents.
- Admin: Manage storage settings and permissions.
Adaptable Tech Stack
- Frontend: HTML5, Bootstrap, Vue.js/React.
- Backend: Python (Django 4+), Django REST Framework.
- Database: PostgreSQL.
- Auth: SSO/LDAP, OAuth2 for Gmail.
- APIs: CrossRef, Google Books, PubMed.
- Tasks: Celery + Redis.
- Server: Ubuntu, NGINX/Gunicorn.
- Security: HTTPS, JWT, OAuth2, RBAC.
Final Benefits
- Clear user, staff, admin roles for every feature.
- Admin dashboard for full control and branding.
- Smart metadata saves effort.
- Flexible tech supports future upgrades.
- Transparent workflows with secure Gmail integration.
End of Role-Based Tech Draft