Project Write-up
Welcome to Ticket To Do
WHAT IT IS
TicketToDo is a way to keep track of what still needs to be done on a project. What is left “To Do”.
Your To Do items can be categorized by urgency, category, project name, date, title, description and much more. Each ticket can be upgraded to a new urgency or completion status as work progresses, and each user that works on that particular issue, can leave a comment explaining what was done, and where to pick up. Each comment is name, time and date stamped and listed in descending order so the most recent comments are shown at the top.
WHAT WAS USED
Programming Languages – HTML, CSS, PHP, MySQL and JavaScript
Frameworks & Libraries – Bootstrap, Materialize
Technologies –
Programs & tools – Adobe Photoshop, Adobe Illustrator, VS Code, Workbench, PHPStorm, VSCode
Website builders – No builders for this project. I used WordPress for my Portfolio site, but linked to TicketToDo as a subdomain.
PURPOSE
I created this project to help me keep track of the things that still needed to be done for each project I was working on. I was writing each issue in a notebook, but found it too cumbersome, and decided there was definitely a better way. I decided to create a way to keep track of what still needed to be done and prioritize them, so the most important fixes got done first and nothing was forgotten.
TicketToDo includes a database that holds information for each “Ticket” as well as user information and sign in data. There is also the ability to assign people to the project and give them access, or deny them access. The administrator has the ability to re-assign users and submit new users to the project.
HOW IT WORKS
When arriving at the web site, our home page greets the guest and gives a brief description of our purpose. The user then either signs in with their previously made account info, or creates a new account.
Once they have entered the site, they can choose a project and a Project Issue (or “Ticket”) by using the drop down project list, or searching for a specific Ticket or Issue, and begin their work to solve the incomplete work. They have the option to comment as they go, so that others can continue the work, understanding what has been done by reviewing the comments left by previous users.
WHAT I LEARNED
PLAN, PLAN, PLAN – It is no surprise that adding new features mid-way through a project can be a tricky process. I learned that database table information must be deleted in a specific order, especially when dealing with joined tables and dependencies. While it would have been better to see the entire plan before I began the project, I am learning that this comes with experience, and even then, some things cannot be anticipated. And, as much as I would have liked the comfort of seeing the end from the beginning, I am glad to have learned how database corrections can be done, and how to add and delete tables and data when it becomes necessary. I certainly have a better appreciation for the ability to think about a project more deeply, plan ahead more completely and will certainly be able to plan more efficiently as my programming skills continue to improve.
TOOLS – I initially chose to style this project’s pages with MaterializeCSS so that I could learn to use a new library as I worked, and I was fond of the kind of styling created by Materializecss. I spent a considerable amount of time becoming familiar with Materializecss and understanding its unique style. However, I eventually opted to return to Bootstrap.
I found that Materializecss had too much hidden material that I could not follow well. When I wanted to change, or just understand something, I had a lot of trouble digging into the Materialize code to find a point where I could change or interject code. Even with developer tools I wasn’t able to dig deeply enough and was frustrated over and over. I also found it difficult to override the materialize code with CSS.
It seemed that there was not nearly enough user help on line for Materializecss. Bootstrap seemed to have a plethora of documentation and so many users with answers to specific questions. The lack of resources made it difficult to learn how to change my design in the ways I had hoped, by either finding the right Materialize way, or manipulating the existing code, and ultimately, I decided to complete my project with Bootstrap and fight the Materialize battle another day, when I had better skills.
Because of this, I found it necessary to take a deeper dive into Bootstrap to solve some of the styling issues I encountered. After re-surfacing, I had a much more clear understanding of how the bootstrap process works. It also left me with even more questions about what I thought I knew about CSSGrid and Flex-box; topics I continue to study.
FORMS, DATABASE & TABLES – I, of course, had to create forms to retrieve information from the database, but what was a little harder, was deciding how to display the returning data. In the end, I decided on a table format that would display the information uniformly each time.
Because tables turned out to be my display option of choice, I found I needed to learn the ins and outs of tables and specifically bootstrap tables. This was a good fundamental exercise, as I worked to bend the tables to my will.