IRIS is a web-based intellectual property management system built for the UP Visayas Technology Transfer and Business Development Office (TTBDO). It helps researchers, TechGen users, UP officials, and administrators manage IP disclosure and application workflows in one place—from choosing the right disclosure form to tracking requirements, statuses, reports, files, and audit activity.
This repository contains the application source code, database scripts, UML diagrams, and academic paper materials for the project.
IRIS was designed to make IP processing clearer, more traceable, and easier to coordinate. The system supports:
- Guided IP classification for patents, utility models, industrial designs, trademarks, and copyright.
- Role-based portals for administrators, TechGen users, UP officials, and public guests.
- Application registry and tracking with status history, requirements, attached files, and inventor details.
- Public resources for downloadable IP forms and reference documents.
- Notifications and pings to help users follow up on delayed or updated applications.
- Reports and audit trail records for accountability and administrative review.
- Supabase-backed authentication, database access, storage, policies, functions, and triggers.
- Frontend: Next.js, React, TypeScript
- Styling/UI: Tailwind CSS, Radix UI, Headless UI, Lucide React
- State and data fetching: TanStack Query, Jotai
- Backend services: Supabase Auth, PostgreSQL, Row Level Security, Storage, Edge Functions
- Charts and reports: ApexCharts, jsPDF, jsPDF AutoTable
- Tooling: ESLint, Prettier, Supabase CLI scripts
.
├── code/ # Main Next.js application
│ ├── src/app/ # App Router pages and route groups
│ ├── src/components/ # Shared and role-specific UI components
│ ├── src/hooks/ # React Query hooks and app hooks
│ ├── src/lib/ # Types, constants, schemas, helpers
│ ├── src/services/ # Supabase-backed service functions
│ ├── scripts/ # SQL functions, policies, triggers, deploy helpers
│ └── utils/supabase/ # Supabase client/admin helpers
├── paper/ # LaTeX paper files
├── uml diagrams code/ # PlantUML source and generated diagram output
└── README.md # Project overview and setup guide
Make sure you have the following installed:
- Node.js 20 or newer
- npm
- A Supabase project
- Supabase CLI, if you need to apply database scripts or deploy edge functions
cd code
npm installCreate code/.env.local and add the required Supabase values:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
NEXT_PUBLIC_SITE_URL=http://localhost:3000For server-side admin actions, edge functions, and email workflows, configure the relevant Supabase secrets as needed:
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
GMAIL_EMAIL=your_email_address
GMAIL_APP_PASSWORD=your_gmail_app_passwordKeep service role keys and email credentials out of version control.
npm run devnpm run build
npm run startThe database layer is maintained through SQL scripts in code/scripts/:
create_tables.sqldefines the core database tables.create_views.sqldefines analytics and reporting views.functions/contains stored procedures, audit helpers, notification logic, and edge function source files.policies/contains Row Level Security policies.triggers/contains database triggers and scheduled jobs.global/contains grants and schema-level setup scripts.migrations/contains later schema changes.
Run these from the code/ directory:
npm run dev # Start the local development server
npm run build # Create a production build using webpack
npm run start # Start the production server
npm run build:turbopack # Create a production build using Turbopack
npm run analyze # Build with bundle analyzer enabled
npm run generate-types # Generate Supabase TypeScript types
npm run deploy:invite-email # Deploy the invite email edge functionThe repository includes code/iris_pentest.sh and code/pentest.env.example for security-oriented checks against a configured app instance. These tests require real Supabase tokens and object IDs from test accounts.
Do not run security tests against production data unless you intentionally prepared a safe test window and backup plan.
paper/contains the academic manuscript files.uml diagrams code/contains PlantUML diagrams for use cases, database design, system flow, and sequence diagrams.
The application code under code/ includes its own license file. Review code/LICENSE before reusing, modifying, or distributing this project.