As I introduced my favorite projects for programming language learning, it came across my mind to make some more complicated applications too where database usage could be a key element. That is because nowadays most applications need a database behind them to store data — or just collect data from a database filled by another application.
In this article I’ll introduce some projects where databases should be used.
So here will be no concrete implementations of these application. This is just a guide what you could develop when using a new programming language and trying out a database connection.
Student record keeping
The goal in this project could be to have a database about students with their personal data, their marks, fees and scholarships.
If you have the database, you can create an application, which fills the database and displays the data. So it lets you maintain the database.
College / University courses database
Almost the same as above but a bit more complex: a college or university has departments, the departments can offer any number of courses. There are instructors in the departments: one instructor in one department (eventually you can try with any department). Each instructor can hold any number of courses but one course can only be hold by one instructor. A student can enrol any number of course. Courses should have a maximum number of students who can enrol.
Library management system
A simple library where books have their own id (even if the book has the same name and same title). Users of the library can rent a book for a given time with option to last the rental longer. If the book is not returned on time, a fine is calculated for each day / week being late. One book can be rented only by one person at a time, but a book has to have a list of all people who rented it.
Books can have categories and locations inside the library. For the application, the user can search for books by title, author, category.
Blood donation system
Here you can store the blood donation data for diverse blood banks. If one patient gets blood, it will be linked to the given blood sample. Try not to link the patient directly to the donor. One patient can get blood from multiple donors. A donor can be a patient, and a formal patient can be a donor too.
In the application you can look up the donation history of a donor; available blood by blood bank; donor-patient relations and so on.
Auction bid recording
Here we aim not to have the full auction recorded, only the bids of the items. This has no impact on anything but you can look-up when came some big bids for items, and who bid so much in the first place.
Alternatively you can extend the application to have a functional auction system, where you can add items for the auction, register users who want to bid, start the auction programmatic and so on. As always, it depends on you.
These are only examples of projects you could do with databases. Although I tried to find easy examples which do not need long database development cycles because the main focus should be application development with a database in the background and not a full-fledged database.
Or as the better developer say: “KISS“.