The problem with most "mini project ideas" lists is that they are written by people who have not done a first year recently. They suggest a food delivery app. You have had one semester of C. Here are 30 ideas you can actually finish, sorted by what you know so far, with an honest note on what each one takes.
One rule before the list: pick something you would use. Not something impressive. A project you need is a project you finish, because you notice the bugs yourself.
If you only know C (one semester)
These are command-line programs. That is not a limitation — plenty of real software is a command-line program, and nobody marking your project cares that it has no buttons.
- Attendance calculator. Enter classes attended and held, get your percentage and how many you can skip. A weekend.
- CGPA calculator that handles your college's exact grading scheme. A weekend, and you will use it every semester.
- Expense tracker writing to a text file so it remembers between runs. Two weekends. File handling is the new skill.
- Library management system. The classic. Structures, arrays, file I/O. Two weekends.
- Quiz program that reads questions from a file and scores you.
- Number guessing game with difficulty levels and a high-score file.
- Text-based Tic-Tac-Toe with a computer opponent that is not random. The opponent is the interesting half.
- Matrix calculator — add, multiply, transpose, determinant.
- Student record system with search, sort and edit.
- Simple text encryption using a Caesar cipher, then a slightly better one.
Once you have basic Python or Java
- Timetable reminder. Reads your class schedule, tells you what is next and how long you have.
- Bulk file renamer for the 400 photos on your phone named IMG_2847.
- Duplicate file finder on your own laptop. Genuinely useful, and teaches you hashing without a lecture on hashing.
- PDF merger and splitter. Everyone needs this at least once a semester.
- Attendance tracker with a small database instead of a text file.
- Password generator and vault — the vault part teaches you why storing passwords is hard.
- Web scraper for your college notice board that mails you when a new notice appears. Check that scraping it is allowed first.
- Unit converter with a proper interface, not a menu.
- Flashcard app with spaced repetition. The algorithm is four lines and it will change how you study.
- Mess menu bot in your hostel WhatsApp or Telegram group.
If you know a bit of web
- Personal portfolio page. Boring, and the single most useful thing on this list for the next three years.
- Lost and found board for your campus.
- Notes sharing site for your branch, with subject-wise folders.
- Club event page with a registration form that actually stores entries.
- Anonymous feedback box for a class or a club.
- Seniors' answer archive — old question papers, sorted and searchable.
- Room-splitting calculator for hostel expenses between friends.
- Class group project tracker — who has what task, what is done.
- Canteen pre-order form so you skip the queue.
- Study-hours leaderboard between friends, which is either motivating or a disaster depending on your friends.
How to pick one, in two minutes
Ask three questions.
Would I use it? If no, pick another. Your motivation runs out around day four and only genuine need carries you past that.
Can I describe what "finished" means in one sentence? "It reads my timetable and prints the next class" is finishable. "A college app" is not, and you will still be adding features in March.
Can I build the ugliest possible version this weekend? If not, the idea is too big. Cut it until you can. You can always add to something that runs; you cannot add to something that does not exist.
The part nobody tells you
Your first project will be bad. The code will be one long file, there will be no error handling, and you will look at it in a year and wince.
Build it anyway. The person who finished one bad project is considerably further along than the person who is still choosing between five good ideas — and there are a lot more people in the second group than the first.
Then put it on GitHub with a README that says what it does and how to run it. That README takes ten minutes and is the difference between a project someone can see and a folder on your laptop.