"Bridging the gap between theoretical inquiry and practical societal impact through rigorous, open-access scholarship."
Welcome to JMRH - a premium academic journal platform with world-class design, real-time database features, and comprehensive user management system.
- 🎨 Premium Design: Academic luxury aesthetic with warm ivory, deep charcoal, and subtle gold
- 🔐 Secure Authentication: Supabase-powered user authentication and authorization
- 📄 Paper Management: Complete submission, review, and publication workflow
- 👨💼 Admin Dashboard: Powerful control panel with real-time updates
- 🚀 Real-Time Updates: Live database synchronization across all users
- 📱 Fully Responsive: Beautiful on desktop, tablet, and mobile
- ✨ Smooth Animations: Framer Motion powered transitions and micro-interactions
- 🎯 Role-Based Access: User and Admin roles with different permissions
These credentials are HARDCODED in the source code and cannot be changed through the application.
| Field | Value |
|---|---|
[email protected] |
|
| Password | JMRHAdmin@2025!Secure |
| Role | Super Administrator |
| Access Level | Full Control |
In case you forget the primary credentials:
| Field | Value |
|---|---|
[email protected] |
|
| Password | SuperJMRH@Master2025 |
| Role | Super Administrator |
- Login URL:
http://yourdomain.com/admin/login - Dashboard URL:
http://yourdomain.com/admin/dashboard(after login)
- These credentials are stored in
src/utils/adminCredentials.ts - They are UNCHANGEABLE through the application interface
- For production, you can modify the credentials directly in the source code file
- Never share these credentials publicly
- The admin login checks these hardcoded credentials first before any database check
- Node.js 18+ installed
- Supabase account (free tier works)
- Git
- Clone the repository
git clone https://github.com/sparrow-003/JMRH.git
cd JMRH- Install dependencies
npm install- Configure environment variables
Create a
.envfile in the root directory:
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_keyGet these values from your Supabase project dashboard.
-
Set up Supabase database Follow the instructions in
SUPABASE_SETUP.mdto create the required tables and configure Row Level Security. -
Run the development server
npm run devVisit http://localhost:5173 to see the application.
- Build for production
npm run buildJMRH/
├── src/
│ ├── pages/
│ │ ├── Home.tsx # Public landing page
│ │ ├── admin/
│ │ │ ├── AdminLogin.tsx # Admin login page
│ │ │ ├── AdminDashboard.tsx # Admin control panel
│ │ │ └── AdminArchives.tsx # Archives management
│ │ ├── user/
│ │ │ ├── UserLogin.tsx # User login page
│ │ │ ├── UserRegister.tsx # User registration
│ │ │ ├── UserSubmitPaper.tsx # Paper submission form
│ │ │ └── UserPapers.tsx # User's paper dashboard
│ │ └── docs/
│ │ └── DocsViewer.tsx # Documentation viewer
│ ├── utils/
│ │ ├── AuthContext.tsx # Authentication context
│ │ ├── supabaseClient.ts # Supabase client setup
│ │ └── adminCredentials.ts # Hardcoded admin credentials
│ ├── styles/
│ │ └── index.css # Global styles
│ ├── App.tsx # Main app component
│ └── main.tsx # Entry point
├── .env # Environment variables
├── package.json # Dependencies
├── README.md # This file
├── SUPABASE_SETUP.md # Database setup guide
└── IMPLEMENTATION_GUIDE.md # Complete implementation guide
- Visit Home Page → Beautiful landing page with features
- Click "Submit Paper" → Redirected to login if not authenticated
- Register/Login → Create account or sign in
- Submit Paper → Fill comprehensive form with:
- Title
- Authors
- Abstract
- Keywords
- PDF file upload
- Track Papers → View all submissions in "My Papers" dashboard
- Real-time Updates → Status changes reflect immediately
- Visit Admin Login →
http://yourdomain.com/admin/login - Enter Credentials → Use hardcoded admin credentials
- Access Dashboard → Full control panel with:
- Overview: System statistics and recent activity
- Papers: Manage all submissions (approve, reject, publish)
- Users: View all registered users
- Settings: System configuration
- Manage Papers → Change status, view details, download files
- Real-time Monitoring → All changes sync live
- Background:
#FAF9F6(Warm Ivory) - Primary:
#2C2C2C(Deep Charcoal) - Secondary:
#334155(Muted Navy) - Accent:
#C5A065(Subtle Gold) - Text:
#4B5563(Clean Gray)
- Headings: Playfair Display (Serif)
- Body: Outfit (Sans-serif)
All components use the premium academic luxury theme with:
- Smooth transitions
- Hover effects
- Glassmorphism
- Gradient accents
- Micro-animations
-
Hardcoded Admin Credentials
- Cannot be changed through UI
- Stored in source code only
- Bypasses database for admin auth
-
Supabase Authentication
- Secure user registration and login
- JWT-based sessions
- Row Level Security (RLS)
-
Protected Routes
- Paper submission requires authentication
- Admin routes check for valid session
- Automatic redirects for unauthorized access
-
Real-time Security
- User can only see their own papers
- Admin can see everything
- Database rules enforce access control
- id: UUID (primary key)
- title: TEXT
- authors: TEXT
- abstract: TEXT
- keywords: TEXT
- description: TEXT
- file_url: TEXT
- file_path: TEXT
- uploaded_by: UUID (foreign key to auth.users)
- uploaded_at: TIMESTAMP
- status: TEXT (pending, under_review, published, rejected)
- is_public: BOOLEAN- Bucket:
papers - Access: Public URLs for approved papers
- Path:
papers/{user_id}/{timestamp}_{filename}
- Push to GitHub
git add .
git commit -m "Initial commit"
git push origin main-
Import to Vercel
- Go to vercel.com
- Import your GitHub repository
- Vercel auto-detects Vite configuration
-
Add Environment Variables In Vercel dashboard settings:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
- Deploy
- Vercel automatically builds and deploys
- Your site will be live at
your-project.vercel.app
| Technology | Purpose |
|---|---|
| React 18 | UI library with hooks |
| TypeScript | Type safety and better DX |
| Vite | Lightning-fast build tool |
| Tailwind CSS | Utility-first styling |
| Framer Motion | Smooth animations |
| Supabase | Backend, Auth, Database, Storage |
| React Router | Client-side routing |
- Total papers count
- Pending reviews count
- Published papers count
- Total users count
- Recent activity feed
- Full list of all submissions
- Filter by status
- Update paper status (pending, under_review, published, rejected)
- View paper details
- Download PDF files
- Delete papers
- List all registered users
- View user details
- Manage user accounts
- Admin information
- Quick actions:
- Export all data
- Generate reports
- Backup database
- System maintenance
- Automatic updates when papers are submitted
- Live status changes
- No page refresh needed
- Submit research papers
- Track submission status
- View all submitted papers
- Download submitted files
- Real-time status updates
- Beautiful, intuitive interface
- Title (required)
- Authors (required)
- Abstract (required)
- Keywords (required)
- PDF Upload (required)
- Additional notes (optional)
- View all submissions
- Status indicators with colors:
- 🟡 Pending: Awaiting review
- 🔵 Under Review: Being evaluated
- 🟢 Published: Accepted and published
- 🔴 Rejected: Not accepted
- Download your papers
- View detailed information
To change admin credentials, edit src/utils/adminCredentials.ts:
export const ADMIN_CREDENTIALS = {
EMAIL: '[email protected]',
PASSWORD: 'YourSecurePassword',
ROLE: 'SUPER_ADMIN'
}Warning: After changing credentials, redeploy the application.
Update .env file with your Supabase credentials:
- Get URL and keys from Supabase dashboard
- Configure storage bucket for file uploads
- Set up Row Level Security policies
- Check credentials in
src/utils/adminCredentials.ts - Clear browser cache and localStorage
- Verify you're using the correct email/password
- Check Supabase connection
- Verify environment variables are set
- Check browser console for errors
- Ensure user is logged in
- Check Supabase real-time is enabled
- Verify network connection
- Check browser console for subscription errors
- Verify Supabase storage bucket exists
- Check bucket permissions (should be public)
- Ensure file size is within limits
- Check file type is allowed (.pdf, .doc, .docx)
- SUPABASE_SETUP.md: Complete database setup guide
- IMPLEMENTATION_GUIDE.md: Detailed implementation documentation
- Comments in Code: Inline documentation throughout codebase
This is a complete, production-ready application. If you want to contribute:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
© 2024 JMRH Publications. All Rights Reserved.
If you encounter any issues:
- Check the troubleshooting section above
- Review the implementation guide
- Check Supabase dashboard for errors
- Verify all environment variables are set correctly
✅ Public home page for everyone ✅ Secure user authentication ✅ Protected paper submission ✅ Real-time database updates ✅ Admin dashboard with full control ✅ Hardcoded admin credentials (unchangeable via UI) ✅ Beautiful, responsive design ✅ Smooth animations throughout ✅ Error handling and validation ✅ File upload and management ✅ Status tracking and updates ✅ Production-ready deployment ✅ Comprehensive documentation
Your JMRH website is a world-class academic journal platform! 🎓✨
For detailed implementation information, see IMPLEMENTATION_GUIDE.md.