Built in a pair, over one month, in the first semester of my first year on the BUT in Computer Science. The topic and the technical constraints were set by the lecturer, but the design and the organisation of the work were entirely down to us: we decided ourselves how to split the code into functions, what storage format to use and how to share out the tasks, with a weekly check-in with our supervisor.
This project mainly covers competencies C1 (Build an application) and C4 (Manage information and data).
Design a stock management tool in C to track items: adding, removing, editing, searching and displaying the inventory. What was expected was the program only: no graphical interface was required, and the marking was based on the correctness of the algorithms, how the code was structured and how reliably the data was saved.
Three constraints were imposed: procedural C (no objects), a command-line interface, and data saved to files, so no database.
I built a program structured around structs representing the items: reference, label, quantity and price. I implemented the main menu functions: adding an item, removing stock, updating quantities, searching by name or by reference, and displaying a sorted inventory. I also handled saving and loading the data from a file, along with validating user input and dealing with error cases.
The main difficulty was handling memory and strings in C, along with reading from and writing to files reliably. I learned to split my code into clear functions, to test each module on its own and to anticipate invalid input. This project moved me forward on algorithmic rigour and on handling data structures.
The deliverable is a working C program, with commented source code and a set of tests. The tool handles a full inventory from the start to the end of a session, with the data saved to a file. What I am proudest of: delivering a stable, readable and reusable program, my first real application of what I knew in C.