SkillSync is a full-stack web application that provides personalized career and skill recommendations using AI. Built with Java Spring Boot, MongoDB, React, and integrated with Google's Gemini API, this platform helps users discover career opportunities that match their skills and interests.
- User Authentication: Secure JWT-based authentication system
- Profile Management: Comprehensive user profile with skills, education, and experience tracking
- AI-Powered Recommendations: Personalized career and learning path recommendations
- Skill Assessment: Visual skill proficiency tracking and gap analysis
- Learning Paths: Curated learning resources to bridge skill gaps
- Admin Panel: Job template management for administrators
- Responsive Design: Mobile-friendly interface with Material UI components
- Real-time Analytics: Interactive dashboards with skill and career insights
- Java Spring Boot 3.3.4
- Spring Security with JWT authentication
- Spring Data MongoDB for data persistence
- Google Gemini API for AI recommendations
- Maven for dependency management
- JUnit 5 for testing
- React 19 with Vite
- Material UI for modern UI components
- React Router for navigation
- Axios for HTTP requests
- Chart.js for data visualization
- npm for package management
- MongoDB Atlas (cloud database)
- Backend: Render.com
- Frontend: Vercel
- Containerization: Docker
- Java 17 or higher
- Node.js 16 or higher
- MongoDB Atlas account
- Google AI Studio API key
-
Clone the repository:
git clone https://github.com/yourusername/skillsync.git cd skillsync -
Backend Setup:
# Navigate to backend directory cd skillsync # Update application.properties with your credentials # src/main/resources/application.properties # Run the application ./mvnw spring-boot:run
-
Frontend Setup:
# Navigate to frontend directory cd frontend # Install dependencies npm install # Start development server npm run dev
# MongoDB connection
spring.data.mongodb.uri=your_mongodb_connection_string
# JWT configuration
jwt.secret=your_jwt_secret_key
jwt.expiration=86400000
# Gemini API
gemini.api.key=your_gemini_api_key
gemini.api.url=https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContentVITE_API_BASE_URL=http://localhost:8080skillsync/
βββ src/
β βββ main/
β β βββ java/com/skillsync/skillsync/
β β β βββ config/ # Security and JWT configuration
β β β βββ controller/ # REST API controllers
β β β βββ dto/ # Data Transfer Objects
β β β βββ model/ # Data models and entities
β β β βββ repository/ # MongoDB repositories
β β β βββ service/ # Business logic services
β β β βββ SkillSyncApplication.java
β β βββ resources/
β β βββ application.properties
βββ frontend/
β βββ src/
β β βββ components/ # React components
β β βββ App.jsx # Main App component
β β βββ main.jsx # Entry point
β βββ package.json
β βββ vite.config.js
βββ Dockerfile # Docker configuration
βββ render.yaml # Render deployment config
βββ pom.xml # Maven dependencies
POST /api/auth/register- User registrationPOST /api/auth/login- User login
GET /api/users/profile- Get user profilePUT /api/users/profile- Update user profile
POST /api/recommendations- Generate AI recommendationsGET /api/recommendations- Get user recommendations
GET /api/admin/jobs- Get all job templatesPOST /api/admin/jobs- Create job templatePUT /api/admin/jobs/{id}- Update job templateDELETE /api/admin/jobs/{id}- Delete job template
# Build the Docker image
docker build -t skillsync .
# Run the container
docker run -p 8080:8080 skillsync- Create a new Web Service on Render
- Connect your repository
- Set build command:
./mvnw clean package -DskipTests - Set start command:
java -jar target/skillsync-0.0.1-SNAPSHOT.jar - Add environment variables in Render dashboard
- Create a new project on Vercel
- Connect your repository
- Set root directory to
frontend - Deploy!
Run backend tests:
./mvnw test- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Your Name - @your_twitter - [email protected]
Project Link: https://github.com/yourusername/skillsync