TrackAndTrail - RAG-Based Hiking Planner

Built a local RAG application that recommends UK hiking trails accessible by train. Designed an end-to-end pipeline combining vector search (ChromaDB), local LLM inference (Llama 3 via Ollama), and geospatial distance calculations (Haversine formula) to link trail data with real UK train station data. Implemented semantic search with metadata filtering for difficulty and distance preferences, and built an interactive map interface using Streamlit and PyDeck.

  • Python
  • PyDeck
  • Streamlit
  • RAG
  • Llama3
  • Ollama
  • ChromaDB

Crime Data Prediction Dashboard

Developed an machine learning pipeline using real crime data from Bristol. Performed data cleaning, feature engineering (time, location, crime type), and aggregated data at postcode level. Trained XGBoost models to predict monthly crime count and classify likely crime types. Evaluated using F1-score and MSE. Deployed an interactive dashboard via Streamlit to visualise predictions

  • Python
  • Streamlit
  • ML Pipelines
  • Scikit-learn
  • Matplotlib
  • Pandas
  • NumPy

Pothole Severity Detection

This project implements a pothole severity detection system using YOLOv5 for object detection. I parsed VOC XML annotations to extract bounding boxes around potholes in images, resized them, and converted to YOLO format for training. The dataset was split into train (80%), validation (10%), and test (10%) sets. Data augmentation techniques like horizontal flips and brightness adjustments were explored using Albumentations to enhance model robustness. The YOLOv5 model was trained with hyperparameters such as 416 image size, batch 16, and 50 epochs, achieving effective pothole detection. Evaluation included confusion matrices visualized with Seaborn and Matplotlib to assess classification accuracy across severity levels (Immediate, Moderate, No Immediate Attention). This project showcases my experience in applying Python, computer vision, dataset preparation, and deep learning for real-world applications.

  • Python
  • PyTorch
  • Scikit-learn
  • Matplotlib
  • Seaborn
  • Jupyter Notebook
  • YOLO

Music-Recommendation-System

Developed a hybrid music recommendation system combining a knowledge-based system (KBS) with Graph Neural Networks (GNNs) to deliver accurate song recommendations. Using two datasets (song and artist terms), We preprocessed data by handling null values, normalising numerical features like tempo and duration, and creating a knowledge graph with NetworkX, which was converted to a DGL graph for GCN training. The GCN model, built with PyTorch, used two convolutional layers with ReLU activation and was optimised through hyperparameter tuning (learning rate: 0.01, hidden size: 16), achieving a training accuracy of 0.5022. The system recommends the top 5 songs based on song and artist features, evaluated using intra-similarity scores (e.g., 0.9994 for '90s' input). Ethical considerations ensured compliance with GDPR and copyright laws, maintaining data privacy and fairness. This project showcases my expertise in Python, NetworkX, PyTorch, DGL, data preprocessing, and collaborative problem-solving.

  • Python
  • Jupyter Notebook
  • PyTorch
  • Knowledge-based Systems (KBS)
  • Graph Neural Networks (GNN)

Student Performance Analysis

For my university coursework, I developed a machine learning pipeline to predict student academic performance using the Higher Education Students Performance Evaluation dataset, identifying key factors influencing grades for stakeholders like educational institutions and teachers. Through thorough data exploration, I visualised patterns and outliers, preprocessed the data by imputing missing values and removing irrelevant features, and addressed class imbalance using SMOTE and RandomUnderSampler. I selected impactful features via univariate selection and correlation analysis, then trained and optimised models including Logistic Regression, Random Forest (achieving 44.83% accuracy), KNN, Decision Tree, SVM, and RNN using GridSearchCV, evaluating performance with confusion matrices and ROC curves. Adhering to ethical data handling under the dataset’s Creative Commons license, I ensured anonymity and fairness, enhancing my skills in Python, scikit-learn, TensorFlow, and independent problem-solving while delivering actionable insights for educational decision-making.

  • Python
  • Pandas
  • NumPy
  • Matplotlib
  • Seaborn
  • Scikit-learn
  • TensorFlow
  • Jupyter Notebook

Koshin Sky

React JS website made for a Japanese Agency that primary in student visa, business visa and tourist visas. This is the last freelancing project I did.

  • REACTJS
  • SEO

Game Den

This responsive website was made for the development assignment of Surge Global Interview. Used HTML, BOOTSTRAP, CSS and JS since the page doesn't have any special functions.

  • html
  • css
  • bootstrap
  • js

Jayamaha Design Studio

React JS website for an interior designing company. Website uses React bootstrap and other packages for animations and styling. Admin panel is created using MERN stack so the admin can update the projects in the portfolio. SEO is used to boost the website for local search queries.

  • React js
  • css
  • bootstrap
  • node js
  • redux
  • mongo db
  • MERN STACK
  • seo

Pollstrix - A poll based survey application

Note: This was my final project for the bachelors. Pollstrix is a cross-platform voting application which targets the public to collect and analyse their views on different matters and areas. This application is developed to collect up-to date details from public to avoid outdated surveys. As per the research carried during the project, Sri Lanka in general lacks a survey system which will update the results with the changes in politics, culture, religion, and other factors.Pollstrix is a proper solution to solve this. The researchers can use the outcome of the surveys in their articles or research papers. Pollstrix let the users post a question with options and a selected date range to run the survey. Users can view and vote the polls within the selected date range. Voting will be denied to the polls that have passed the end date. The results of ended polls will be shown in descriptive charts such as pie charts and bar charts. To improve accessibility the application supports three languages: English, Sinhala, and Tamil and FAQ section.

  • flutter
  • firebase
  • google authentication
  • android
  • ios
  • web

Qt Media Player

A Media Player application built using Qt and C++. Features include: play, pause, stop, change volume, fast forward, multiple players at once. This is a desktop application and does support Linux, Windows and MacOS.

  • qt
  • c++
  • linux
  • mac
  • windows

SLBFE - Cross Platform app

(The api may not work due to heroku free version is not available anymore) This is management system developed to Sri Lanka Bureau of Foreign Employment for an university assignment. The application has both mobile and web versions. System can be used by citizens to register themselves and apply for jobs, foreign companies to employee citizens and bureau officers to manage both employees and companies. Web is developed using Reactjs and mobile application is by flutter. The server is developed using nodejs and is hosted using heroku. API document is also available on the github repository.

  • react js
  • css
  • material ui
  • redux
  • jwt
  • nodejs
  • mongo db
  • api development
  • flutter
  • heroku
  • cross platform
  • MERN STACK

Weducation - A knowledge sharing platform

A distributed system developed for mobile and web clients. Application features posting, like, comment, post tags, search and chats. The primary goal of the application is to share the knowledge between users. Web application was developed using ReactJS, Material UI and Redux. Mobile application is developed by Flutter. Server is created using Nodejs and Express. Mongodb is used as the database and the server is hosted using Heroku. Visit the GitHub page for more information.

  • React JS
  • CSS
  • MATERIAL UI
  • REDUX
  • NODEJS
  • MONGO DB
  • JWT
  • SOCKET IO
  • FLUTTER
  • ANDROID
  • IOS
  • WEB
  • mern stack

Library Management System

Library Management System is another java application where the librarian can manage the book borrowers, issue books, add new books, manage returned books and delete books, borrowers and etc. This application can be run as a desktop application and I used MySQL database to store the details of books and users.

  • java
  • mysql
  • desktop application

Grading System - Desktop

This Grading system can calculate the passed rank, total marks and average marks of a student when their marking details are entered. This also features the generating receipts, deleting student records and reset the marks options. This could be used as a java desktop application.

  • java
  • desktop application

Tip Calculator

The users of the application can enter the total bill, tip percentage and the the number of people to share the bill with. Then the application calculates the amount each person has to pay. tip amount and the total amount required to pay for the shop.

  • java
  • android application

Currency Converter - Android

Android application to convert currencies. This application uses a currency API to obtain the exchange rate of the selected currencies. Then the exchange rate for the each amount entered to the application will be converted according to the selected currencies.

  • java
  • api
  • android application

Tic Tac Toe - Desktop

Tic Tac Toe game is made using Java and can be run as a jar application from the desktop. It's has the same functioning as the usual tic tac toe game. This game can be played with two players

  • java
  • desktop application

Word Counter Desktop Application

This is a simple word counter app made using Java. The user can enter the paragraphs or sentences for the system and the application will calculate the total words in the entered paragraph.

  • JAVA
  • DESKTOP APPLICATION

University Sports Management System

Sports Management System was created using JAVA and MYSQL. In this system the students of the university can register with their student details and create an account. After that they can sign up for sports. The sports are categorized as indoor, outdoor, and societies. The users can view details of a sport and and register. Users panel shows the users all their registered sports, add more sports and remove sports options.

  • java
  • mysql
  • desktop application

Agricultural System UX/UI design

UX/UI design for an agricultural system where the users can buy products that are on sale from the farmers. The users can search items to buy, rate products, comment about products and etc. There's also contact, chat bot, edit / view profile options. The farmers can add their products with prices and the admin of the page can view all the products and their details. They also can delete products if necessary. This design was built using photoshop, HTML, CSS and JavaScript. Additionally, font-awesome and google fonts was used.

  • HTML
  • CSS, BOOTSTRAP
  • JS

Fitness Center

Website for an fitness center which provides services such as zumba, yoga, gym, boxing and personal training etc . This was created using HTML, CSS and JavaScript. The formspree has been used to receive form data. The site visitors can fill the contact form and send an email to the fitness coach asking for details.

  • HTML
  • CSS

Parking Ticket Kiosk

This Java android application is done as a university project. This app can be used as a kiosk or in a similar instance to purchase a ticket when entering to a car park. Demo car park was created using Arduino sensors so the park's gate opens when a car arrives and stay closed if the park is full. Firebase has been used as the database with email authentication to register admins. The admins can view the vehicle details with the plate no, arrival time, vehicle type, and price. The driver should purchase the ticket by entering the vehicle details. The price of the vehicle is calculated by the time staying and the vehicle type.

  • java
  • firebase
  • authentication
  • iot / arduino
  • android application

Big Screen - Movie Review Application

Movie review website which lets the users to view the latest movies, movie details, movie news and comment or rate them. This site was made using bootstrap, CSS, Javascript and PHP. PHPMailer has been used to send email notifications. The new users can register first and the registered users can login and comment, rate the new movies and view latest news about movies.

  • HTML
  • BOOTSTRAP
  • JS
  • PHP

Hospital Management System

Java web application using MVC architecture. This app lets the patients who visits the site to book a doctor or to make online payments. The receptionists and admins can view, delete and edit the patients, doctors. appointments, symptom check, ward allocations etc. The doctors can view their patient list for the day. The automatic sms is sent to the patients when an appointment is booked.

  • java
  • MVC
  • servlets
  • html & css
  • bootstrap
  • mysql

Yakkala Timber Merchant

This was my first freelance project. Website created using basic HTML, CSS and JS for a Timber Store which produce variety of wood products and services including flooring, staircases, doors and pantries. The formspree has been used to receive form data. The site visitors can fill the contact form and send an email to the business asking for details. Basic SEO is used to get site to the top of the results page

  • html
  • bootstrap
  • js
  • SEO