A professional email management system for K.K. Wagh Institute of Engineering Education and Research
π Live Demo: https://unimail-kkwieer.vercel.app/
UniMail is a web-based institutional email management application built as a mini project for Database Management Systems (DBMS) course. It demonstrates practical implementation of database operations with a modern glassmorphism user interface, specifically designed for managing official correspondence at KKWIEER.
Academic Details:
- Course: Database Management Systems (DBMS)
- Class: TY-A Computer Engineering
- Institution: K.K. Wagh Institute of Engineering Education and Research
- Year: 2024-2025
| Name | Role |
|---|---|
| Hrishikesh Gavai | Developer |
| Dhruvesh Patil | Developer |
| Nakshatra Rao | Developer |
| Palak Lokwani | Developer |
- π Email Composer - Create and save professional institutional emails
- π₯ Contact Management - Pre-loaded Principal, Deans, and HOD contacts
- π Multi-Language Support - Automatic translation to Hindi and Marathi
- π PDF Attachments - Upload and manage PDF files (up to 40MB)
- π Gmail Integration - Open composed emails directly in Gmail with translations
- ποΈ PostgreSQL Storage - All records stored securely via Supabase
- π Advanced Search - Find emails by date, sender, recipient, or content
- π Excel Export - Download records with clickable PDF links
- π Sortable Columns - Sort by date, sender, recipient, or subject
- π Real-time Sync - Instant data updates across sessions
- π¨ Glassmorphism UI - Modern frosted glass design with Unsplash background
- π Pitch Black Theme - Professional dark accents with clean aesthetics
- π± Fully Responsive - Seamless experience on desktop, tablet, and mobile
- π Toast Notifications - Real-time feedback for all operations
- π Secure Login - Session-based authentication
Frontend:
- React.js 18.2.0 - UI framework with hooks
- CSS3 with CSS Variables - Theming & animations
- Lucide React - 300+ beautiful icons
- React Hot Toast - Elegant notifications
Backend & Database:
- Supabase - PostgreSQL database (6 tables)
- Supabase Storage - PDF file management
- Row Level Security (RLS) - Data protection
External APIs:
- MyMemory Translation API - Hindi/Marathi translation
- Gmail Compose API - Email integration
Development Tools:
- Create React App - Project scaffolding
- XLSX - Excel export functionality
- Git & GitHub - Version control
Hosting:
- Vercel - Frontend deployment (CI/CD)
- Supabase Cloud - Database & storage hosting
CREATE TABLE public.email_records (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
from_user TEXT NOT NULL,
to_user TEXT NOT NULL,
subject TEXT NOT NULL,
content TEXT NOT NULL,
subject_hindi TEXT,
content_hindi TEXT,
subject_marathi TEXT,
content_marathi TEXT,
pdf_filename TEXT,
sent_date DATE NOT NULL,
created_at TIMESTAMPTZ DEFAULT NOW()
);CREATE TABLE public.users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
username TEXT UNIQUE NOT NULL,
password TEXT NOT NULL,
full_name TEXT,
email TEXT,
created_at TIMESTAMPTZ DEFAULT NOW(),
last_login TIMESTAMPTZ
);
CREATE INDEX users_username_idx ON public.users (username);CREATE TABLE public.admin (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email TEXT UNIQUE NOT NULL,
name TEXT NOT NULL,
department TEXT DEFAULT 'Administration',
created_at TIMESTAMPTZ DEFAULT timezone('utc', NOW())
);CREATE TABLE public.principal (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email TEXT UNIQUE NOT NULL,
name TEXT NOT NULL,
department TEXT DEFAULT 'Principal Office',
created_at TIMESTAMPTZ DEFAULT timezone('utc', NOW())
);CREATE TABLE public.deans (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email TEXT UNIQUE NOT NULL,
name TEXT NOT NULL,
department TEXT DEFAULT 'Dean Office',
created_at TIMESTAMPTZ DEFAULT timezone('utc', NOW())
);CREATE TABLE public.hod (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email TEXT UNIQUE NOT NULL,
name TEXT NOT NULL,
department TEXT NOT NULL,
created_at TIMESTAMPTZ DEFAULT timezone('utc', NOW())
);- Bucket Name:
pdfs - Max File Size: 40MB per file
- File Types: PDF only
- Access: Authenticated users
| Operation | Feature | SQL/API Used |
|---|---|---|
| CREATE | Insert email records | INSERT INTO email_records |
| Upload PDF files | Supabase Storage Upload | |
| Add contacts | INSERT INTO admin/principal/deans/hod |
|
| READ | Fetch all emails | SELECT * FROM email_records |
| Search emails | WHERE subject ILIKE / to_user ILIKE |
|
| Load contacts | SELECT email FROM admin/principal/deans/hod |
|
| UPDATE | Translate to Hindi | MyMemory API + UPDATE email_records |
| Translate to Marathi | MyMemory API + UPDATE email_records |
|
| Update last login | UPDATE users SET last_login |
|
| DELETE | Remove recipients | React state management |
| Remove PDF attachments | Supabase Storage Delete |
Node.js >= 16.0.0
npm >= 8.0.0
Git
Supabase account (free tier)- Clone the repository
git clone https://github.com/Hrishikesh-Gavai/UniMail-KKWIEER.git
cd UniMail-KKWIEER- Install dependencies
npm install- Configure environment variables
Create a .env file in the root directory:
REACT_APP_SUPABASE_URL=your_supabase_project_url
REACT_APP_SUPABASE_ANON_KEY=your_supabase_anon_keyGet your credentials from Supabase Dashboard β Project Settings β API
- Set up Supabase database
Run the SQL schema provided above in Supabase SQL Editor:
- Create all 6 tables
- Create the
pdfsstorage bucket - Insert sample data for testing
- Start development server
npm startVisit http://localhost:3000 to view the application.
- Build for production
npm run build{
"dependencies": {
"@supabase/supabase-js": "^2.38.0",
"lucide-react": "^0.263.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-hot-toast": "^2.4.1",
"xlsx": "^0.18.5"
}
}- Smart Recipient Management - Add emails manually or via quick select dropdown
- Validation - Real-time email format validation
- Contact Organization - Grouped by Principal, Deans, and HOD
- Drag & Drop Upload - Intuitive PDF file upload with duplicate detection
- Auto-save - Form data persists across sessions
- Real-time Sync - Instant updates using Supabase subscriptions
- Advanced Search - Search across all fields simultaneously
- Date Filtering - Filter records by specific dates
- Column Sorting - Click headers to sort ascending/descending
- Expandable Rows - View full content without cluttering the table
- One-Click Translation - Translate subject and content independently
- Hindi Support - Powered by MyMemory Translation API
- Marathi Support - Regional language for Maharashtra
- Original Preservation - Both English and translated versions stored
- Gmail Integration - Translations included in Gmail compose
- PDF Only - Restricted to PDF format for security
- Size Limit - 40MB maximum per file
- Duplicate Detection - Warns before overwriting existing files
- Alternative Suggestions - Auto-generates unique filenames
- Public URL Generation - Shareable download links
- Excel Format - XLSX file generation
- Clickable Links - PDF download links in Excel
- Full Records - All fields including translations
- Formatted Dates - Human-readable date format
This project demonstrates mastery of:
- Relational database design
- Primary and foreign key constraints
- Indexing for query optimization
- CRUD operations
- Transaction management
- Data normalization (3NF)
- RESTful API integration
- Supabase client usage
- Authentication & authorization
- File storage management
- Error handling & validation
- React component architecture
- State management with hooks
- Async/await operations
- Form validation
- Responsive design principles
- CSS custom properties
- Version control with Git
- Cloud deployment
- Environment configuration
- Code organization
- User experience design
- β Session-based authentication
- β Environment variable protection
- β Input validation & sanitization
- β File type restrictions
- β Size limit enforcement
- β Duplicate file detection
β οΈ Note: Designed for internal institutional use
Project Lead:
Hrishikesh Gavai
π§ Email: hrishikeshgavai@gmail.com
π GitHub: @Hrishikesh-Gavai
π LinkedIn: Hrishikesh Gavai
Institution:
K.K. Wagh Institute of Engineering Education and Research
Nashik, Maharashtra, India
This project is created for educational purposes as part of the DBMS curriculum at K.K. Wagh Institute of Engineering Education and Research.
2025 UniMail - KKWIEER
- Faculty Guide - DBMS Course Professor
- Department of Computer Engineering - K.K. Wagh Institute
- Supabase Team - Database infrastructure
- React Community - Open-source libraries
- Unsplash - Background imagery
Made with β€οΈ by TY-A Computer Engineering Students
π Academic Year 2025-2026
Β© 2025 UniMail - KKWIEER | Database Management Systems Mini Project