The "Study Abroad" project is a comprehensive platform designed to assist students in exploring international education opportunities. It integrates a backend, frontend, and machine learning (ML) components to provide a seamless and personalized user experience.
The backend is built using Node.js, Express, and MongoDB. It provides APIs for:
- User authentication and profile management.
- CRUD operations for university data.
- Integration with ML models for personalized recommendations.
For more details, refer to the Backend README.
The frontend is developed using React.js with Vite as the build tool and Tailwind CSS for styling. It offers:
- A responsive and interactive user interface.
- Features like program listings, user profile management, and university recommendations.
For more details, refer to the Frontend README.
The ML component enhances the platform by providing:
- Data Scraper: Scrapes university data from the internet and generates JSON files for manual storage in MongoDB.
- Recommendation Model: Suggests universities based on user preferences (e.g., degree, course, country, budget).
- Heatmap Visualization: Displays insights about student data using clustering and geospatial analysis.
- Python: For building and running ML components.
- BeautifulSoup & Requests: For web scraping.
- Pandas & NumPy: For data preprocessing and analysis.
- Matplotlib, Seaborn & Folium: For data visualization.
- Flask: For exposing ML models as APIs.
- The frontend communicates with the backend using REST APIs.
- The backend handles user authentication, profile updates, and university data management.
- The backend interacts with the ML components via Flask APIs.
- Example ML API endpoints:
/recommend: Accepts user preferences and returns recommended universities./heatmap: Displays a heatmap of student data.
- The frontend indirectly interacts with ML components through the backend.
- Example workflow:
- The user submits preferences on the frontend.
- The backend forwards the request to the ML API.
- The ML API processes the data and returns results to the backend, which are then displayed on the frontend.
- Node.js (v16 or higher)
- Python (v3.8 or higher)
- MongoDB (local or remote instance)
-
Clone the Repository:
git clone <repository-url> cd Project-Study_Abroad
-
Set Up the Backend:
- Navigate to the backend directory:
cd Abroad-backend - Install dependencies:
npm install
- Create a
.envfile and configure environment variables:MONGO_URI=mongodb://0.0.0.0/Abroad JWT_SECRET=MY_Key
- Start the backend server:
npm start
- Navigate to the backend directory:
-
Set Up the Frontend:
- Navigate to the frontend directory:
cd ../Abroad-frontend - Install dependencies:
npm install
- Create a
.envfile and configure the API URL:VITE_API_URL=http://localhost:5000/api - Start the development server:
npm run dev
- Navigate to the frontend directory:
-
Set Up the ML Component:
- Navigate to the ML directory:
cd ../Abroad-ml - Create a virtual environment and activate it:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Start the Flask server:
python app.py
- Navigate to the ML directory:
Project-Study_Abroad/
├── Abroad-backend/ # Backend codebase
├── Abroad-frontend/ # Frontend codebase
├── Abroad-ml/ # Machine learning models and APIs
├── README.md # Root README for the project
-
User Authentication:
- Secure login and registration using JWT.
- Profile management with wishlist functionality.
-
University Data Management:
- Add, update, and retrieve university details.
-
Personalized Recommendations:
- Suggests universities based on user preferences using ML models.
-
Interactive Visualizations:
- Heatmaps and insights about student data.
-
Data Scraping:
- Scrapes university details from the internet for manual storage in MongoDB.
- Ensure all components (backend, frontend, ML) are running.
- Access the frontend at:
http://localhost:5173 - Use the platform to explore programs, manage profiles, and get recommendations.
- Add more advanced ML models for better recommendations.
- Integrate payment gateways for application fee processing.
- Expand the database with more universities and programs.