Final Year Project ideas for Computer Science and Software Engineering
24 project ideas in the four domains we mentor: full-stack web development, mobile apps in React Native, ERP solutions and cybersecurity. Each one is a starting point with a real problem, a suggested scope and stack, what makes it final-year level, and the mistake groups most often make with it.
Web projects let a group show the whole system: interface, API, database, authentication and deployment. Examiners look for more than screens, so plan the back end and data model as carefully as the front end.
Clinic appointment and e-prescription system
Difficulty: Standard
Small clinics still book patients by phone and write prescriptions by hand, so double bookings and lost records are common.
Core features
Patient, doctor and admin roles with separate dashboards
Doctor schedules, slot booking and cancellation
Digital prescriptions saved to the patient's history
Email or SMS reminders before appointments
Suggested stack
React or Next.js, Node.js with Express, PostgreSQL
What makes it final-year level
Role-based access control, and preventing two patients booking the same slot at the same moment.
Watch out for
Building polished screens first and leaving the booking rules and data model until the last month.
Event ticketing with QR check-in
Difficulty: Standard
University societies sell tickets through forms and spreadsheets, oversell events and check people in from printed lists.
Core features
Organisers create events with seat limits and ticket types
Attendees receive a ticket with a unique QR code
A check-in page that scans codes and rejects reused tickets
Live attendance and sales reports for organisers
Suggested stack
Next.js, Node.js, PostgreSQL, a QR code library
What makes it final-year level
Database transactions so the last seat can never be sold twice, and tickets that cannot be forged or reused.
Watch out for
Adding real payments too early. Use a payment provider's test mode, or leave payment out of scope.
Online examination system with a question bank
Difficulty: Challenging
Teachers spend hours setting and marking short quizzes, and online tests are easy to share between students.
Core features
A question bank tagged by topic and difficulty
Randomised papers, so no two students see the same order
Timed tests with automatic marking of objective questions
Results analysis by question and by topic
Suggested stack
React, Node.js or Django, PostgreSQL
What makes it final-year level
Server-side timing that cannot be tampered with from the browser, and fair randomisation from a tagged bank.
Watch out for
Promising cheating prevention you cannot deliver. Define exactly which risks the system reduces.
Volunteer and blood donor matching portal
Difficulty: Standard
Hospitals and NGOs post urgent requests on social media and wait for someone nearby to see them.
Core features
Donor or volunteer profiles with availability and location
Requests matched to the nearest suitable people
Map view with OpenStreetMap
Notifications and a record of responses
Suggested stack
React, Node.js, MongoDB with geospatial queries
What makes it final-year level
Location-based matching rules, and privacy: what personal data is shown, to whom and when.
Watch out for
Storing exact home locations. Collect the least data that still makes matching work.
Multi-vendor marketplace for local sellers
Difficulty: Challenging
Home-based sellers rely on chat apps to take orders, track stock and handle delivery.
Core features
Seller stores with their own products and stock
One cart that splits into an order per seller
Order tracking and delivery status
Admin reports on sales and commission
Suggested stack
Next.js, Node.js, PostgreSQL
What makes it final-year level
Splitting one checkout across sellers while keeping stock and order states consistent.
Watch out for
Building a generic shop from a tutorial. Decide early what your marketplace does that an ordinary shop does not.
Campus lost-and-found with moderation
Difficulty: Standard
Lost items are reported on scattered group chats, and most are never matched to their owners.
Core features
Lost and found posts with photos, category and place
Search and filters, with suggested matches
Private messaging to arrange a return
Reporting and moderation tools for admins
Suggested stack
React, Node.js, MongoDB, Socket.IO for messages
What makes it final-year level
A matching feature that suggests likely owners, and moderation that keeps the platform safe.
Watch out for
Letting real-time chat take over the timeline. Simple messages may be enough.
React Native lets one code base run on Android and iOS. Strong mobile FYPs use what a phone does well: notifications, location, the camera and working without a connection.
Shared expense tracker for hostels and flatmates
Difficulty: Challenging
Students sharing rooms lose track of who paid for what, and settling up causes arguments.
Core features
Groups, shared expenses and custom splits
Works offline and syncs when back online
A settle-up screen with the fewest payments needed
Monthly summaries by category
Suggested stack
React Native (Expo), SQLite on the device, Node.js or Firebase
What makes it final-year level
Offline-first sync with conflict handling, and an algorithm that minimises the number of settle-up payments.
Watch out for
Underestimating sync. Decide early what happens when two people edit the same expense offline.
Medicine reminder and refill tracker
Difficulty: Standard
Elderly patients miss doses and run out of medicine, and family members cannot see when this happens.
Core features
Medicine schedules with local notifications
Marking doses as taken or missed
Refill reminders based on the pills left
A caregiver view for a family member
Suggested stack
React Native, local notifications, Node.js with PostgreSQL
What makes it final-year level
Reliable scheduled notifications on both platforms, and safe sharing between patient and caregiver accounts.
Watch out for
Giving medical advice. The app records and reminds; it never suggests doses.
Campus shuttle tracker
Difficulty: Challenging
Students wait at stops without knowing where the university bus is or when it will arrive.
Core features
A driver app that shares location during a route
A student app with the bus on a live map
Estimated arrival at each stop
Route and timetable management for admins
Suggested stack
React Native, maps, Node.js with Socket.IO
What makes it final-year level
Real-time location updates at scale, and arrival estimates that stay sensible when the bus stops or loses signal.
Watch out for
Draining the driver's battery. Plan background location and update intervals carefully.
Class attendance with rotating QR codes
Difficulty: Standard
Paper attendance is slow, and students mark friends present when they are not in class.
Core features
Teachers display a QR code that changes every few seconds
Students scan it in the app to mark attendance
Optional check that the phone is on campus
Attendance reports per course and per student
Suggested stack
React Native, Node.js, PostgreSQL
What makes it final-year level
Codes that expire quickly and cannot be reused, and a clear account of which kinds of proxy attendance the design prevents.
Watch out for
Collecting more location data than needed. Check only what the attendance rule requires.
Surplus food donation app
Difficulty: Standard
Restaurants throw away good food at closing time while nearby charities need it.
Core features
Restaurants post surplus food with a pickup window
Charities claim a donation, first come first served
An ERP (Enterprise Resource Planning) system connects the day-to-day work of an organisation, such as stock, sales, staff and finance, in one database. A good ERP FYP does a few modules well for one real kind of business, rather than every module badly.
School management ERP
Difficulty: Challenging
Small private schools manage admissions, attendance, fees and results in separate registers and spreadsheets.
Core features
Admissions and student records
Daily attendance by class
Fee vouchers, payments and dues
Results, report cards and a parent portal
Suggested stack
React, Node.js or NestJS, PostgreSQL
What makes it final-year level
Permissions across several modules and roles, and reports that combine attendance, fees and results.
Watch out for
Trying to build every module. Choose three or four and finish them properly.
Inventory and point of sale for small retailers
Difficulty: Standard
Shop owners do not know their real stock or profit until they count everything by hand.
Core features
Products, categories and barcode scanning
Sales at the counter with receipts
Purchases from suppliers and stock levels
Low-stock alerts and daily profit reports
Suggested stack
React, Node.js, PostgreSQL or MySQL
What makes it final-year level
Keeping stock consistent across sales, returns and purchases, and accurate profit reporting.
Watch out for
Leaving returns and stock corrections out. They are where most stock errors come from.
HR, leave and payroll module
Difficulty: Standard
Small companies calculate salaries, leave and deductions manually each month.
Core features
Employee records and departments
Leave requests and approvals
Attendance linked to payroll
Monthly salary slips with allowances and deductions
Suggested stack
React, Node.js, PostgreSQL
What makes it final-year level
Configurable payroll rules, and an approval workflow with a full audit trail.
Watch out for
Assuming one set of tax and salary rules. Document the rules your system follows.
Restaurant operations ERP
Difficulty: Challenging
Restaurants lose money on wasted ingredients because stock is not linked to what is sold.
Core features
Orders from tables, takeaway and delivery
A kitchen display for incoming orders
Recipes that deduct ingredients from stock automatically
Daily sales, waste and stock reports
Suggested stack
React, Node.js, PostgreSQL, Socket.IO for the kitchen display
What makes it final-year level
Linking each menu item to its ingredients so every sale updates stock, and real-time order flow to the kitchen.
Watch out for
Underestimating the recipe and unit model (grams, pieces, litres). Design it first.
Pharmacy stock with batch and expiry tracking
Difficulty: Standard
Pharmacies sell from the wrong batch or discover expired medicine only during a stock check.
Core features
Medicines with batches, expiry dates and suppliers
Sales that use the batch expiring first
Expiry and low-stock alerts
Purchase orders and supplier history
Suggested stack
React, Node.js, PostgreSQL
What makes it final-year level
Batch-level stock and first-expiry-first-out selection, with reports a pharmacist would trust.
Watch out for
Skipping real data. Ask a local pharmacy which reports they need before designing screens.
Project cost tracking for small contractors
Difficulty: Standard
Small construction and maintenance firms only find out a project went over budget when it is finished.
Core features
Projects with budgets by category
Material purchases and labour costs per project
Budget against actual spending, as it happens
Client invoices and payment tracking
Suggested stack
React, Node.js or Django, PostgreSQL
What makes it final-year level
Live budget-versus-actual reporting, and clear cost categories that make overruns visible early.
Watch out for
Designing for every industry. Pick one kind of contractor and model their real workflow.
Security projects need a clear threat, a defence you can measure and an ethical test plan. Every idea here is built and tested only in your own lab or on systems you are authorised to test.
Phishing link checker browser extension
Difficulty: Standard
Users click links in emails and messages without any warning that the site may be fake.
Core features
Checks links against public blocklists
Warning signs such as look-alike domains and suspicious URLs
A clear warning page with the reasons
A dashboard of blocked and reported links
Suggested stack
JavaScript browser extension, Python or Node.js back end
What makes it final-year level
A tested set of detection rules, measured against known safe and known phishing URLs from public datasets.
Watch out for
Claiming it catches every phishing site. Report how often it is right and wrong.
Zero-knowledge password manager
Difficulty: Challenging
People reuse weak passwords because remembering strong ones is hard.
Core features
A vault encrypted on the user's device before upload
A master password with a strong key-derivation function
A password generator and strength meter
A breach check that never sends the full password
Suggested stack
React or React Native, Web Crypto API, Node.js, PostgreSQL
What makes it final-year level
Correct use of established cryptography (no home-made algorithms), and a server that cannot read the vault.
Watch out for
Inventing your own encryption. Use well-reviewed libraries and explain why you chose them.
Web vulnerability scanner for a local lab
Difficulty: Challenging
Student and small-business web apps go live with common flaws such as missing security headers and injection risks.
Core features
Crawls a target web app in a local lab
Checks security headers, cookies and TLS settings
Tests for common injection and XSS patterns
A report that explains each finding and how to fix it
Suggested stack
Python, tested against deliberately vulnerable apps such as DVWA or OWASP Juice Shop
What makes it final-year level
Comparing results with an established scanner, and keeping false positives low.
Watch out for
Scanning sites you do not own. Test only in your lab; it is both a legal and an ethical requirement.
Log-based intrusion detection dashboard
Difficulty: Standard
Small servers record failed logins and suspicious requests in logs nobody reads.
Core features
Collects SSH and web server logs
Detects brute-force attempts and unusual request patterns
Alerts by email or a messaging app
A dashboard of events over time
Suggested stack
Python, a time-series or relational database, a web dashboard
What makes it final-year level
Detection rules tested against simulated attacks in your own lab, with false alarms measured.
Watch out for
Building only a dashboard. The detection logic is the project.
Secure file sharing with expiring links
Difficulty: Standard
Sensitive documents are shared as email attachments and stay in inboxes for years.
Core features
Files encrypted before upload
Share links that expire after a time or number of downloads
Optional password on each link
An access log for every file
Suggested stack
Next.js, Node.js, object storage, PostgreSQL
What makes it final-year level
Key handling that keeps files unreadable to the server, and reliable expiry.
Watch out for
Leaving key management vague. Explain exactly where each key lives.
Network traffic analyser for a home or lab network
Difficulty: Challenging
Home and small-office users have no idea which devices on their network talk to what.
Core features
Captures traffic on a network you control
Shows devices, protocols and data volumes
Flags signs of port scans and unusual connections
Exports reports for later analysis
Suggested stack
Python with Scapy, a web dashboard
What makes it final-year level
Accurate protocol breakdowns and scan detection tested with tools run inside your own lab.
Watch out for
Capturing other people's traffic. Use only your own network or lab, with permission.
Once an idea feels right, turn it into a proposal your supervisor can approve. These steps keep it realistic.
1
Write the problem in two sentences
Who has the problem, and what goes wrong for them today. If you cannot say it simply, the scope is not clear yet.
2
Talk to a real user
A clinic, a shop, a society or a teacher. One conversation usually changes the feature list for the better.
3
Cut the scope
List every feature, then mark the ones the project cannot work without. Build those first; the rest are extras.
4
Choose the stack and divide the work
Pick tools the group can learn in time, and split the work by module so each member can explain their part in the viva.
5
Get feedback before you submit
Ask your supervisor, or book a free consultation with a mentor, to check the scope and stack before the proposal is final.
Your project stays your own
These ideas are starting points. We mentor, review and ask the questions examiners will ask, but we never build, write or sell projects. Follow your department's rules on outside help and AI tools.
The questions students and parents ask us most, filed where you can find them. Pull a card to read it.
Q.0101
Can I use one of these ideas for my final year project?
Yes, as a starting point. Other students can read this page too, so shape the idea around a real user, setting or feature of your own, and check it against your department's guidelines and with your supervisor.
Q.0202
How do I know whether an idea is big enough for an FYP?
A final-year project usually needs a real problem, more than simple forms over a database, and at least one part that is technically hard, such as real-time updates, security, offline sync or a non-trivial algorithm. Each idea here lists what gives it that depth.
Q.0303
Which FYP domains do you mentor?
Four: full-stack web development, mobile apps built with React Native, ERP solutions, and cybersecurity. Tell us your idea and stack, and we confirm a suitable mentor before you book.
Can a group of three or four students share one idea?
Yes. Most ideas here split naturally into modules, for example the front end, the back end and database, and the mobile or security part. Give each member a module they can explain on their own in the viva.
Q.0505
Can you build the project or write the proposal for us?
No. We teach, review your work and help you scope and plan, but the code, the proposal and the report must be yours. Having someone else build or write graded work is academic dishonesty.
Q.0606
How can a mentor help at the idea stage?
In a free first consultation, a mentor helps you test whether the idea is feasible, cut it to a size your group can finish, and compare stacks, so the proposal you submit is one you can deliver.
Q.0707
How much does FYP mentoring cost?
Mentoring is quoted per project after the free first consultation, because projects differ in scope, stage and group size.