Cinema Management System - Basic Java Application - University School Project - Software Engineering - OOP
CinemaTickets was born as a University school project, in Software Engineering academic career, as resolution of Object Oriented Programming subject and its purpose was to demostrate and put on practice and evidence all the knowledge acquired along the semester in this subject, which I was able to successfully achieve by getting a Project rating of 10/10.
This is a Cinema Managenemt System focused mainly on making and getting Cinema Tickets all the way: It performs CRUD operations just inside the application (with no database connection, only with collections), it can open and save application files, perform searches applying different filters, providing an easy-to-use GUI, friendly and intuitive for a great experience and with a decent level of customization and personalization, it supports User Settings, GUI Laf themes, Binary and Text saving/opening CinemaTickets files, it is available in English and Spanish, and maybe more features coming on future versions.
CinemaTickets was originally built with Java OpenJDK 17.0.2, currently it uses Java OpenJDK 21.0.1 though, it is a project that is actually an interesting exercise made for University school but also for those who are learning and seeking for knowledge, for a way to know how to do things, how to code and perform basic-intermediate Java tasks in programming, for those who are looking for a little bit of inspiration, or even only for feeding curiosity.
This project is an example of hypothetical use cases, sticked to not be too hard for a student, but it is evolving in every version to be more realistic and professional as a real world environment application, this is not yet complete, but it is intended to eventually fulfill this purpose. Although this app does well what it has to do, it is not meant to be used in a real commercial/production environment for a company, at least not as it is in this version, some changes and adaptations would be necessary to be done before that could happen in an effective way, but for now there are no plans to do it, however, that possibility is not discarded for a future version.
For a more complete and detailed features description, please check and read the releases available where a more in deep application content is shared.
- Clone the repository locally, select the "Open with GitHub Desktop" option or use the Clone option in your favorite IDE using the url provided in the Code button located in this GitHub repository, you can also Download it as ZIP if you want.
- Note that the application is developed with Apache NetBeans IDE 17, so it is recommended the use of this IDE(or a higher version of it), you must have it installed on your computer to be able to open the project with it, although the option to import/open it with other IDEs such as IntelliJ Idea is possible, it is not recommended due to lack of compatibility and interoperability of each other, as well as the difference of certain formats for the handling of GUI files, etc., same with other IDEs, however this is entirely at your own risk and expense, if you want to open it with another IDE and you can get it working, great!
- Once you have done the previous step you will probably be able to open the project already, it probably will ask you to perform the first build with Gradle, so let it do it, click on resolve and wait for the compilation to be done and click on accept when it finishes.
- Configure NetBeans to use Gradle 8.7 if necessary, although it should be automatic.
- If everything went well you will be able to run the project, review its code and modify it if you want, for it to adjust to your specific needs or particular likes.
If you want to contribute code to the project:
- Make a FORK of the project and work with Git to synchronize updates.
- Once you have done the fork and have it in your GitHub profile, clone it to your local machine.
- You can aim to resolve a bug, which should have an open issue marked with the 'Fix Bug' tag, so checking the issues section is a good place to start. Bug fixes can be developed without prior approval, as long as they do, in fact, fix the bug.
- On the other hand, you can also propose a new feature, to do this, open a new issue, within this, explain that it is about a new Feature and describe it in detail, what need or problem it solves and why it would be a good idea to incorporate it into the project.
- This issue must be reviewed and once it is evaluated as viable, timely and adequate for the project, it will be approved through an approval message in the issue or an equivalent mean, after this it is going to be flagged as 'Fix Bug', 'Refactoring', 'Enhancement' or 'Feature' and it will remain open until a Pull Request is provided for its implementation. If the issue is about a feature, once the Feature is approved, you can begin to develop it, it is important to wait for this approval so as not to spend time in vain if the feature is not approved, if this second scenario happens, it will be explained in the issue why it was not approved, stating the reason in a logical way, and after that, it will be closed.
- Once you consider that you have done your changes, and once you have performed tests and verified that everything works fine, make the commit locally, when you do a commit, please follow the following Guidelines for writing Messages in Commits.
- Execute a 'git push' from your local develop branch to the remote develop branch of your CinemaTickets forked project in your repositories, with this, you will have your forked project updated with the changes you have made, now you have to take them to the ClarkCodes repository.
- In order to do this, in your CinemaTickets forked project, on the right top corner, click on Contribute -> Create Pull Request. For Pull Request titles and messages, follow the same guidelines as for commits, don't forget to mention what issue the contribution aims to, wether it is a 'Fix Bug', improvement or 'Refactoring', new 'Feature' or a 'Enhancement' issue. With this, you would already have created the Pull Request, which has to be reviewed and later it has to be resolved if your changes are accepted and incorporated into the project or not, this is the project repository administrator or maintainer decision.
- For Contributions, only code changes in Java files and/or files related with Apache NetBeans IDE 17(or higher) or resource files will be accepted, Pull Requests containing files referring to other development IDEs and which are not Java or resource files, will not be accepted.
- Use only the "develop" branch, which is the branch intended for the application development, the main branch will be only the production branch intended for the stable version.
- Changes always must have a clear purpose and a reason to be, wether it is aiming to fixing a bug, a new feature implementation, or some part refactoring due to eficiency or simplification means.
- The code that you write must always follow good practices, legibility and maintainibility principles.
- Always request changes by a Pull Request, don't make forced commits like 'git push --force' of any type directly against any branch, only make Pull Requests on the develop branch. All Pull Requests must be previously reviewed before possibly perform a merge if there is no problem, conflict or inconvenience found.
- Although it may happen that at some point some Pull Request may not be accepted or changes are requested to be done in this one, because in the first place, I must prioritize the consistency, coherence and integrity of the project, for the good and health of this one, beyond that, of course every contribution is welcome and appreciated, since it is understood that it is not an obligation by any mean and this comes from the spirit of joint collaboration as Open Source community of developers, by and for better pieces and products of software, for the use of all after all, so fraternally, thank you very much for it.
I'm a self-taugh Software Developer, and currently a Software Engineering university superior grade student, passionated about programming and technology.
-
📫 You can send me an email to clark.codes.sk@gmail.com and I'll try to answer as soon as possible for me, you can also follow me on my socials if you want to see my content.
Of course this project is not perfect and it is not pretended for it to be, there are some aspects that could have be done in a better way, some things that could improve and it is possible to work on updates in further versions, but this has to be taken as an exercise and practice project that could evolve.
Thank you very much for visiting and check this project out, I hope you like it, it was made with love and passion, as everything I do, I really enjoyed doing it, it's been pretty cool, so I'll be seeing you here soon with more projects, on YouTube with more videos and on the other social networks as well, hugs, cheers... with love and enthusiasm and...
Happy Coding! <3
Clark
.