MedConnect is a comprehensive professional networking platform designed specifically for healthcare professionals, medical institutions, and students. It facilitates professional connections, job opportunities, knowledge sharing, and career development within the medical community.
- Professional Networking: Connect with other healthcare workers, build professional relationships
- Advanced Job Search: Browse medical job opportunities with powerful filtering (location, specialization, experience level)
- Job Application Tracking: Track application status (pending, accepted, rejected)
- Professional Profile Management: Showcase skills, experience, education, and achievements
- Social Feed: Share medical knowledge, experiences, and professional updates
- Institution Discovery: Explore and connect with medical institutions and hospitals
- Institutional Profiles: Comprehensive institution management with detailed information
- Advanced Job Posting: Post medical positions with detailed requirements, responsibilities, and benefits
- Application Management: View and manage job applications with integrated applicant profiles
- Candidate Discovery: Browse and connect with potential healthcare professionals
- Dashboard Analytics: Track posted jobs and application statistics
- Career Exploration: Discover internship and entry-level opportunities
- Professional Networking: Connect with experienced professionals and mentors
- Educational Resources: Access shared medical knowledge and experiences
- Early Career Building: Build professional networks before graduation
- Framework: Next.js 13+ with App Router
- UI Components: Shadcn UI with Radix UI primitives
- Styling: TailwindCSS with responsive design patterns
- State Management: React Context API for authentication and global state
- Form Handling: React Hook Form with validation
- API Client: Axios with custom interceptors
- Toast Notifications: Sonner for user feedback
- Icons: Lucide React icon library
- Runtime: Node.js with Express.js
- Database: MongoDB with Mongoose ODM
- Authentication: JWT (JSON Web Tokens) with secure middleware
- File Storage: ImageKit integration for profile pictures and media
- API Design: RESTful APIs with proper HTTP status codes
- Data Validation: Mongoose schema validation
- Security: CORS, authentication middleware, input sanitization
- Users: Healthcare professionals, students, and institutional accounts
- Jobs: Medical job postings with detailed requirements
- Job Applications: Application tracking with status management
- Connections: Professional networking relationships
- Posts: Social feed content with engagement tracking
- Institutions: Hospital and medical college profiles
MedConnect/
โโโ frontend/
โ โโโ app/ # Next.js 13+ App Router
โ โ โโโ colleges/ # Medical college listings and profiles
โ โ โโโ connections/ # Professional networking interface
โ โ โโโ feed/ # Social media feed
โ โ โโโ hospitals/ # Hospital listings and profiles
โ โ โโโ jobs/ # Job marketplace
โ โ โ โโโ create/ # Job posting form (institutions only)
โ โ โ โโโ page.tsx # Job listings with tabs (Browse/Posted/Applied)
โ โ โโโ login/ # Authentication pages
โ โ โโโ signup/
โ โ โโโ profile/ # User profile management
โ โ โ โโโ [id]/ # Dynamic profile viewing
โ โ โ โโโ UserContentManager.tsx
โ โ โโโ layout.tsx # Global layout with navigation
โ โโโ components/ # Reusable UI components
โ โ โโโ ui/ # Shadcn UI components
โ โ โโโ Header.tsx # Navigation header
โ โ โโโ theme-provider.tsx
โ โโโ contexts/ # React contexts
โ โ โโโ AuthContext.tsx # Authentication state management
โ โโโ lib/ # Utility functions
โ โ โโโ api.ts # API client configuration
โ โ โโโ utils.ts # Helper functions
โ โโโ types/ # TypeScript type definitions
โ โโโ user.ts
โ โโโ jobs.ts
โ โโโ apiResponse.ts
โโโ backend/
โ โโโ src/
โ โ โโโ controllers/ # API route handlers
โ โ โ โโโ authController.ts
โ โ โ โโโ jobController.ts
โ โ โ โโโ userController.ts
โ โ โ โโโ postController.ts
โ โ โ โโโ connectionController.ts
โ โ โโโ middleware/ # Custom middleware
โ โ โ โโโ authMiddleware.ts
โ โ โโโ models/ # Mongoose schemas
โ โ โ โโโ User.ts
โ โ โ โโโ Job.ts
โ โ โ โโโ JobApplication.ts
โ โ โ โโโ Post.ts
โ โ โ โโโ Connection.ts
โ โ โโโ routes/ # API routes
โ โ โ โโโ authRoutes.ts
โ โ โ โโโ jobRoutes.ts
โ โ โ โโโ userRoutes.ts
โ โ โโโ services/ # Business logic
โ โ โ โโโ db.ts
โ โ โ โโโ jwt.ts
โ โ โ โโโ imagekitService.ts
โ โ โโโ utils/ # Utility functions
โ โโโ package.json
โโโ README.md
- Node.js 18.x or higher
- npm or pnpm package manager
- MongoDB database (local or cloud)
- ImageKit account for file storage
- Clone the repository:
git clone https://github.com/farvath/Med-Connect.git
cd Med-Connect- Install frontend dependencies:
cd frontend
npm install- Install backend dependencies:
cd ../backend
npm install- Set up environment variables:
Frontend .env.local:
NEXT_PUBLIC_API_URL=http://localhost:3001/api
NEXT_PUBLIC_IMAGEKIT_PUBLIC_KEY=your_imagekit_public_key
NEXT_PUBLIC_IMAGEKIT_URL_ENDPOINT=your_imagekit_url_endpointBackend .env:
MONGODB_URI=mongodb://localhost:27017/medconnect
JWT_SECRET=your_super_secret_jwt_key_here
IMAGEKIT_PRIVATE_KEY=your_imagekit_private_key
IMAGEKIT_PUBLIC_KEY=your_imagekit_public_key
IMAGEKIT_URL_ENDPOINT=your_imagekit_url_endpoint
PORT=3001- Start the development servers:
Backend (Terminal 1):
cd backend
npm run devFrontend (Terminal 2):
cd frontend
npm run dev- Access the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:3001
The application uses the following MongoDB collections:
- users - Healthcare professionals, students, and institutions
- jobs - Medical job postings
- jobapplications - Job application tracking
- posts - Social feed content
- connections - Professional networking relationships
- hospitals - Hospital profiles
- colleges - Medical college profiles
To populate the database with sample data:
cd backend
npm run seed:jobs # Seeds sample medical jobs
npm run seed:users # Seeds sample users (if available)- User Registration: Email/password with account type selection
- Email Verification: Secure account activation
- JWT Token: Stateless authentication with HTTP-only cookies
- Role-Based Access: Different permissions for professionals vs institutions
- Professional: Healthcare workers and medical students
- Hospital: Hospital and healthcare institutions
- Institution: Medical colleges and educational institutions
- Job posting (institutions only)
- Profile management
- Job applications
- Professional networking
- Three-Tab Interface:
- Browse Jobs: All available positions with filters
- My Posted Jobs: Institution dashboard (institutions only)
- Applied Jobs: User's application history
- Advanced Filtering: Location, job type, experience level
- Infinite Scroll: Seamless job browsing experience
- Application Tracking: Real-time status updates
- Connection Management: Send, accept, reject connection requests
- Profile Discovery: Browse healthcare professionals
- Clickable Profiles: Direct navigation to user profiles
- Network Analytics: Connection statistics
- Dynamic Routing:
/profile/[id]for any user - Comprehensive Sections:
- Personal information
- Professional experience
- Education background
- Skills and certifications
- Always Visible: Sections show even when empty with placeholders
- Mobile-First: Optimized for all device sizes
- Touch-Friendly: Easy navigation on mobile devices
- Progressive Enhancement: Works across all browsers
- Consistent Branding: Medical blue color scheme
- Accessibility: WCAG compliant components
- Dark Mode Ready: Theme system in place
- Loading States: Skeleton loaders and spinners
- Error Handling: User-friendly error messages
- Toast Notifications: Real-time feedback
- Modal Dialogs: Job details and applications
- Hover States: Visual feedback on interactions
- Button States: Loading, disabled, success states
Authentication:
POST /api/auth/register- User registrationPOST /api/auth/login- User loginPOST /api/auth/logout- User logout
Jobs:
GET /api/jobs- Get jobs with pagination and filtersPOST /api/jobs- Create new job (institutions only)GET /api/jobs/:id- Get job detailsPOST /api/jobs/:id/apply- Apply for jobGET /api/jobs/:id/applications- Get job applications (job poster only)GET /api/jobs/user/posted- Get user's posted jobsGET /api/jobs/user/applications- Get user's job applications
Users:
GET /api/users/profile- Get current user profilePUT /api/users/profile- Update user profileGET /api/users/:id- Get user by ID
Connections:
GET /api/connections- Get user connectionsPOST /api/connections/request- Send connection requestPUT /api/connections/:id/accept- Accept connection request
- Consistent Error Format: Standardized error responses
- HTTP Status Codes: Proper status code usage
- Validation Errors: Detailed field-level validation
- Authentication Errors: Clear auth failure messages
- TypeScript: Full type safety across the stack
- ESLint: Code linting and formatting
- Prettier: Consistent code formatting
- Git Hooks: Pre-commit quality checks
- Unit Tests: Component and function testing
- Integration Tests: API endpoint testing
- E2E Tests: User journey testing
- Manual Testing: Cross-browser compatibility
- Frontend: Vercel/Netlify deployment ready
- Backend: Node.js server deployment
- Database: MongoDB Atlas for production
- Environment: Production environment configuration
- Input Validation: Server-side validation for all inputs
- SQL Injection Prevention: Mongoose query protection
- XSS Protection: Input sanitization
- CORS Configuration: Controlled cross-origin requests
- Password Hashing: bcrypt with salt rounds
- JWT Security: Secure token generation and validation
- Session Management: Token expiration and refresh
- Rate Limiting: API request throttling
- Next.js App Router: Server-side rendering and static generation
- Image Optimization: Next.js automatic image optimization
- Code Splitting: Automatic route-based code splitting
- Lazy Loading: On-demand component loading
- Infinite Scroll: Efficient pagination for large datasets
- Database Indexing: Optimized MongoDB queries
- Pagination: Efficient data loading
- Caching Strategy: Response caching for frequently accessed data
- Connection Pooling: MongoDB connection optimization
1. Backend not connecting to MongoDB:
# Check MongoDB connection string
# Ensure MongoDB is running locally or accessible remotely
# Verify network connectivity2. Frontend API calls failing:
# Verify backend server is running on port 3001
# Check NEXT_PUBLIC_API_URL in frontend .env.local
# Ensure CORS is properly configured3. ImageKit upload issues:
# Verify ImageKit credentials in .env
# Check ImageKit public/private key configuration
# Ensure ImageKit URL endpoint is correct4. Authentication not working:
# Verify JWT_SECRET is set in backend .env
# Check token expiration settings
# Clear browser localStorage/cookiesWe welcome contributions to MedConnect! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add some amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow TypeScript best practices
- Write meaningful commit messages
- Add tests for new features
- Update documentation as needed
- Follow the existing code style
This project is licensed under the MIT License - see the LICENSE file for details.
- Farvath - Lead Developer - GitHub Profile
- Shadcn/ui for the beautiful UI components
- Next.js team for the amazing framework
- MongoDB for the robust database solution
- ImageKit for reliable media storage
- Healthcare Community for inspiration and requirements gathering
For support, email [email protected] or join our Slack channel.
- Real-time Messaging: Direct communication between healthcare professionals
- Video Consultations: Integrated telemedicine capabilities
- Medical Forums: Specialized discussion boards by medical specialty
- Certification Tracking: Professional certification and continuing education management
- Mobile App: React Native mobile application
- Analytics Dashboard: Advanced analytics for institutions
- AI-Powered Matching: Intelligent job and connection recommendations
- Multi-language Support: International accessibility
- GraphQL API: More efficient data fetching
- Microservices Architecture: Scalable backend services
- Redis Caching: Advanced caching layer
- Elasticsearch: Enhanced search capabilities
- WebRTC Integration: Real-time communication features
- Progressive Web App: Enhanced mobile experience
- v1.0.0 - Initial release with core functionality
- User authentication and profiles
- Job marketplace
- Professional networking
- Responsive design
MedConnect - Connecting Healthcare Professionals Worldwide ๐
For more information, visit our documentation or live demo.