This project is a Java console application that simulates a City Hall management system with two user roles: Admin and Citizen. Login credentials are hardcoded in the system(see in the main class) as follows:
Admin:
Username: admin
Password: admin123
Citizen:
Username: citizen (or the name registered by admin in lowercase)
Password: pass123
Administrators can add, update, or remove citizen records and manage appointment types along with their available dates. Citizens can schedule and cancel appointments for various city hall services.
The application demonstrates advanced Java concepts such as inheritance, encapsulation, polymorphism, and the use of collections like HashMap and List. Responsibilities are clearly separated between admins and citizens, illustrating object-oriented design principles. This system can be extended in the future to include a graphical user interface, persistent storage, and analytical reporting features