A comprehensive web-based platform that connects students with relevant internship opportunities using advanced matching algorithms and real-time job data from external APIs.
- Smart Recommendation System: Advanced matching algorithm that considers education level, skills, interests, and location preferences
- Real-time Job Integration: Fetches live internship data from Jooble API
- User Authentication: Secure Firebase-based authentication system
- Personalized Profiles: Individual user profiles with skill tracking and preferences
- Save Internships: Bookmark interesting opportunities for later review
- Multi-role Support: Separate interfaces for students and administrators
- Profile Creation: Build comprehensive profiles with education, skills, and preferences
- Intelligent Matching: Get personalized internship recommendations with match percentages
- Search & Filter: Search internships by keywords, location, and other criteria
- Application Tracking: Save and manage internship applications
- Real-time Updates: Access to fresh job postings from Jooble API
- Internship Management: Add, edit, and manage internship listings
- User Analytics: View platform statistics and user engagement
- Job Data Monitoring: Monitor external API integrations
- Content Moderation: Manage platform content and listings
- HTML5/CSS3: Modern, responsive design
- JavaScript (ES6+): Interactive functionality and API integrations
- CSS Grid/Flexbox: Responsive layout system
- Font Awesome: Icon library
- Google Fonts: Typography (Poppins)
- Firebase Firestore: NoSQL database for user data and internships
- Firebase Authentication: User authentication and authorization
- Firebase Analytics: User behavior tracking
- Jooble API: Real-time job/internship data
- Email Integration: Application submission via mailto links
- Modern web browser (Chrome, Firefox, Safari, Edge)
- Internet connection for Firebase and API services
- Firebase project setup
- Create a new Firebase project at Firebase Console
- Enable Firestore Database
- Enable Authentication (Email/Password)
- Get your Firebase configuration object
- Replace the Firebase config in the HTML file:
const firebaseConfig = {
apiKey: "your-api-key",
authDomain: "your-project.firebaseapp.com",
projectId: "your-project-id",
storageBucket: "your-project.appspot.com",
messagingSenderId: "your-sender-id",
appId: "your-app-id",
measurementId: "your-measurement-id"
};- Register at Jooble API
- Get your API key
- Replace the API key in the code:
const JOOBLE_API_KEY = 'your-jooble-api-key';- Clone or download the project files
- Update Firebase and Jooble API configurations
- Deploy to any web hosting service (GitHub Pages, Netlify, Firebase Hosting, etc.)
- Access the application through your domain
- Sign Up: Create an account with email and password
- Complete Profile: Add education, skills, interests, and location
- Get Recommendations: Use the recommendation system to find matching internships
- Browse Listings: Explore real-time job postings from Jooble
- Save Opportunities: Bookmark interesting internships for later
- Apply: Use direct application links or email integration
- Admin Account: Sign up with admin role
- Add Internships: Create new internship listings
- Manage Content: Edit or remove existing listings
- Monitor Analytics: View platform usage statistics
- API Management: Monitor external API integrations
The platform uses a sophisticated matching algorithm that considers:
- Education Match (20%): Compares user education level with requirements
- Skills Match (40%): Uses cosine similarity to match skill sets
- Interest Match (25%): Matches user interests with job sectors
- Location Match (15%): Considers geographic preferences and remote work
Match scores are calculated as percentages, with minimum thresholds to ensure quality recommendations.
users: {
uid: string,
name: string,
email: string,
role: 'student' | 'admin',
createdAt: timestamp
}
internships: {
title: string,
company: string,
description: string,
requiredSkills: array,
sector: string,
educationLevel: string,
location: string,
stipend: string,
createdAt: timestamp,
source: 'manual' | 'api'
}
savedInternships: {
userId: string,
jobId: string,
title: string,
company: string,
description: string,
location: string,
salary: string,
link: string,
savedAt: timestamp
}
- Endpoint:
https://jooble.org/api/{API_KEY} - Method: POST
- Purpose: Fetch real-time internship data
- Rate Limits: Check Jooble documentation for current limits
- Authentication: User sign-up, login, logout
- Firestore: Data storage and retrieval
- Analytics: User behavior tracking
- Firebase Authentication: Secure user authentication
- Data Validation: Input sanitization and validation
- Access Control: Role-based access to admin features
- CORS Handling: Proper cross-origin resource sharing
- XSS Protection: Input escaping and content sanitization
- Lazy Loading: Content loaded as needed
- Caching: Firebase SDK caching for improved performance
- Debounced Searches: Optimized search functionality
- Responsive Design: Optimized for all device sizes
- CDN Usage: External libraries loaded from CDNs
- Chrome 80+
- Firefox 75+
- Safari 13+
- Edge 80+
- Mobile browsers (iOS Safari, Chrome Mobile)
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
- Follow existing code style and conventions
- Test all new features thoroughly
- Update documentation for new features
- Ensure mobile responsiveness
- Validate all user inputs
- Firebase Connection: Check API keys and project configuration
- Jooble API: Verify API key and rate limits
- Authentication: Ensure Firebase Auth is properly configured
- CORS Errors: Check domain configuration in Firebase
- Check browser console for error messages
- Verify all API keys are correctly configured
- Ensure internet connection is stable
- Clear browser cache if experiencing issues
This project is licensed under the MIT License - see the LICENSE file for details.
- Firebase for backend services
- Jooble for job API services
- Font Awesome for icons
- Google Fonts for typography
- v1.0.0: Initial release with core functionality
- v1.1.0: Added save internships feature
- v1.2.0: Enhanced matching algorithm
- v1.3.0: Improved UI/UX and mobile responsiveness
Prashikshan Setu - Bridging the gap between students and opportunities.