Coder Social home page Coder Social logo

clarkcodes / cinematickets Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 33.51 MB

Cinema Management System - Basic Java Application - University School Project - Software Engineering - OOP

License: Creative Commons Zero v1.0 Universal

Java 100.00%
java java16 openjdk16 flatlaf lookandfeel settings user-settings files university university-project

cinematickets's Introduction

CinemaTickets

Cinema Management System - Basic Java Application - University School Project - Software Engineering - OOP

Project Description

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.

Used Technologies

Cks-Java

Java

Gradle

FlatLaf

Apache NetBeans

Tickets Creation Window

Tickets Search - Filtering / Modify - Edit / Delete Tickets Window

Settings Window

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.

Make sure you are not missing details

For a more complete and detailed features description, please check and read the releases available where a more in deep application content is shared.

How can you use or open the CinemaTickets project?

  • 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.

How to contribute?

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.

Take into account the following aspects:

  • 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.

ClarkCodes Logo OnTransparent_100x100px_300ppi Hey what's up man!, I'm Clark, the creator of CinemaTickets.

Twitter Follow GitHub Followers

I'm a self-taugh Software Developer, and currently a Software Engineering university superior grade student, passionated about programming and technology.

How to reach me

  • ๐Ÿ“ซ You can send me an email to [email protected] 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.

Thanks for visiting

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.

cinematickets's People

Contributors

clarkcodes avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.