A dynamic academic profile and portfolio website built with Vite + React, featuring a blog system, publication management, and admin dashboard.
- Dynamic Blog System: Create, edit, and manage blog posts with rich media support
- Publication Management: Track academic publications with detailed metadata
- Resume Management: Upload and manage resume PDF with experience tracking
- Admin Dashboard: Secure admin interface for content management
- Responsive Design: Mobile-first design with modern UI components
- Media Slideshows: Interactive image galleries with navigation controls
- Contact Form: Integrated contact system with form validation
- Frontend: Vite + React, TypeScript, Tailwind CSS
- UI Components: Shadcn/ui
- Backend: Supabase (PostgreSQL, Auth, Storage)
- Deployment: Vercel
-
Clone the repository:
git clone <repository-url> cd thoufeeq-academic-profile
-
Install dependencies:
npm install
-
Set up environment variables: Create a
.env.localfile in the root directory:VITE_SUPABASE_URL=your_supabase_url VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
-
Run the development server:
npm run dev
thoufeeq-academic-profile/
├── src/
│ ├── components/ # React components
│ │ ├── admin/ # Admin dashboard components
│ │ ├── ui/ # Shadcn/ui components
│ │ ├── Navbar.tsx # Navigation component
│ │ └── Footer.tsx # Footer component
│ ├── pages/ # Page components
│ │ ├── Index.tsx # Home page
│ │ ├── About.tsx # About page
│ │ ├── Blog.tsx # Blog listing
│ │ ├── BlogPost.tsx # Individual blog post
│ │ ├── Publications.tsx # Publications page
│ │ ├── Awards.tsx # Awards page
│ │ ├── Contact.tsx # Contact page
│ │ ├── AdminDashboard.tsx # Admin dashboard
│ │ └── AdminLogin.tsx # Admin login
│ ├── integrations/ # External integrations
│ │ └── supabase/ # Supabase configuration
│ ├── hooks/ # Custom React hooks
│ └── lib/ # Utility functions
├── supabase/ # Supabase configuration
│ ├── config.toml # Supabase CLI config
│ └── migrations/ # Database migrations
├── public/ # Static assets
└── ... # Configuration files
Required environment variables:
Create a .env.local file in the root directory:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key- Push your code to GitHub
- Connect your repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy automatically on push to main branch
- Build the project:
npm run build
- Start the production server:
npm run preview
- Row Level Security (RLS) policies
- Admin authentication
- Environment variable protection