EduNavigator is a Flask-based college recommendation and counselling web application designed to help students shortlist Tamil Nadu engineering colleges using their TNEA cutoff score and personal preferences.
The application filters and ranks colleges based on factors such as course, branch, city, college type, and fee range, then explains why a college was recommended and provides detailed information about its facilities and available programmes.
๐ Launch EduNavigator
The application is hosted on Render. The free instance may take a few seconds to wake up after inactivity.
-
๐ฏ TNEA Cutoff-Based Recommendations
- Shortlist colleges based on a student's cutoff score.
-
๐ Preference-Based Filtering
- Course
- Branch
- City
- College type
- Fee range
-
๐ Recommendation Ranking
- Processes college and course data using Pandas to generate ranked recommendations.
-
๐ก Recommendation Explanation
- Shows why a college was recommended based on the selected preferences.
-
๐ซ College Details
- View college information, facilities, and available programmes.
-
๐พ SQLite Database
- Uses Flask-SQLAlchemy with SQLite for local application data.
-
๐งช Automated Testing
- Includes automated tests for application and recommendation functionality.
-
๐ณ Docker Support
- The application can be built and run using Docker Compose.
EduNavigator follows a preference-driven recommendation workflow:
Student Preferences
โ
โผ
TNEA Cutoff + Preference Input
โ
โผ
College & Course Filtering
โ
โผ
Recommendation Ranking
โ
โผ
Ranked College Recommendations
โ
โผ
Recommendation Explanation
โ
โผ
Detailed College Information
The recommendation workflow uses Pandas to process the college dataset and perform the ranking and filtering operations.
- Python
- Flask
- Flask-SQLAlchemy
- Pandas
- SQLite
- CSV
- Jinja Templates
- Bootstrap
- CSS
- Pytest
- Docker
- Docker Compose
EduNavigator/
โโโ app.py
โโโ config.py
โโโ extensions.py
โโโ models.py
โโโ data_service.py
โโโ recommendation.py
โโโ import_data.py
โโโ requirements.txt
โโโ .env.example
โโโ .gitignore
โโโ README.md
โ
โโโ data/
โ โโโ final.csv
โ
โโโ templates/
โโโ static/
โ
โโโ tests/
โ โโโ test_app.py
โ โโโ test_recommendation.py
โ
โโโ docs/
โ โโโ EDUNAVIGATOR_REPORT.docx
โ
โโโ instance/
instance/contains local runtime/database data and is ignored by Git.
The application uses a CSV-based college dataset as its primary source of college and programme information.
The data is processed using Pandas and imported into the application's local SQLite database.
The recommendation process uses student inputs such as:
- TNEA cutoff score
- Course
- Branch
- City
- College type
- Fee range
These preferences are used to filter and rank suitable colleges before presenting the results to the student.
- Python 3.10 or newer
- Git
git clone <your-repository-url>
cd EduNavigatorpython -m venv venv
.\venv\Scripts\Activate.ps1python -m pip install --upgrade pip
python -m pip install -r requirements.txtpython import_data.pypython app.pyOpen the application in your browser:
http://127.0.0.1:5000
These steps are based on the existing local setup documented in the project.
To recreate the local SQLite database from data/final.csv:
python import_data.py --replaceRun the automated test suite with:
python -m pytest -qTests are located in:
tests/
โโโ test_app.py
โโโ test_recommendation.py
Make sure Docker Desktop is installed.
Set the application's secret key:
$env:SECRET_KEY = "replace-with-a-long-random-value"Build and start the application:
docker compose up --buildThen open:
http://127.0.0.1:5000
On the first start, Docker creates the SQLite database and imports data/final.csv. The database is stored in a named Docker volume so it persists across container restarts.
Create a .env file from the provided example:
copy .env.example .envSet a strong SECRET_KEY before deployment.
SECRET_KEY=your-long-random-secret-key
Do not commit .env or the generated SQLite database to GitHub.
The project already excludes local runtime database data through Git configuration.
Potential areas for further development include:
- Machine-learning-based recommendation models
- More advanced personalized ranking
- Historical TNEA admission data integration
- User accounts and saved recommendations
- Improved recommendation explanations
- Cloud database integration
- Production deployment
Mithilesh A
If you find EduNavigator useful or interesting, consider giving the repository a โญ on GitHub.
EduNavigator โ helping students make better-informed engineering college choices through data-driven recommendations.



