Collectables Inventory Manager

This project started because a good friend of mine needed to orgainize his collectables. The system will be database driven using MySQL and powered by PHP.

I’m also creating an image hosting server to allow for multiple image sizes to be created for many uses, as well as to prevent clogging up the main server with loads of images in one folder.

Since this is a work in progress, I figured why not share my progress with you. Below you will find devlogs of how I’m building the project. Enjoy!

DevLog #4

Wednesday, March 17, 2021

It’s only a matter of time before I finish this project. I’m moving really fast and I’m getting a lot done. Currently, at the time I’m writing this, I have completed the ability to add an item and all of it’s details (minus a gallery, I’ll get to it), media page, and a filter features for listing the items on the home page. I also started working on the item display popup that shows when clicking the item.

Card View of items

Item details popup

The next major things I need to work on are finishing the details popup and the ability to add media to the item from existing images that have been uploaded (currently it’s only added via drag and drop).

After that, just small things to add and that shouldn’t take long.

I set myself up with Jira and made a board to help me get on track and to finish this crazy thing. It definitely helped and I’ll be using this feature on future projects.

See you next time.

DevLog #3

Wednesday, March 10, 2021

Before: I had set up user authentication to check the username and password (which was stored in the database, encrypted), however, I didn’t like that approach and found it to be less secure.

Now: the method is to periodically change a token, store into the database, and then pass the encrypted value to the image server. This way the password isn’t used and I can use a better hashing method on the password field.

Now that I’ve got 90% of the image server running. The next thing I need to work on is the main server. Using Git with Bitbucket, I was easily able to set up a remote branch to the server, and I was able to send my first commit, just like I did for the image server. All is working as planned!

The image server is nearly done and I will be working on bugs as I work on the main server, and periodically creating documentation as I go, when I find the time, or am bored!

The next thing I need to do is create user management on the main server and then set up a login. At the same time I’ll be working on a basic design and I’ll see where I need to go from there.

Early version of home page. Testing grid layout of items.

Within a few days of working, I was able to get a basic design of the home page where a list of items would show and my friend designed the top banner. I also implemented user login as well as page routing.

DevLog #2

Tuesday, February 23, 2021

This is a short one.

Now that I have the core functionality built, it was time to move onto heavy testing and tightened security. The system can now handle many files at a time. 

Security was at a minimum at first. Temp username and temp password, written out plainly in the code. This is not how you should handle authentication.

On the main server, a user will be required to log in. This login information will be the same authentication credential that gets passed to the image server, where it will check against the same record in the database, all of which is encrypted.

Now that that was finished, it was time to tighten up the code; fix stragglers, and re-write functions to help speed up overall functionality, and merge class functions.

This seemed like a good spot to take a break. The next part is finalizing the image server, more cleaning, and code commenting.

DevLog #1

Saturday, February 20, 2021

This project sparked because a really good friend of mine wanted to keep track of his collectables in a digital way.

Thinking ahead, I knew this platform would require a lot of images. Each item would consist of a few to several images. This would really make the server messy.

Most developers would have the image uploader store all the images in one folder and then store the file location in the database.

What I came up with is a lot smarter and will eliminate the need to save to the same server, bloating it and causing slow downs.

My solution? Create my own image hosting server, catered to this project.

The image server will live on a sub-domain and will allow the main server to handle the other important stuff.

Illustration to show a single file upload to image server will generate many file sizes for better optimization on main server.

So far, I have made the image server generate a list of images ranging from large to thumbnail size. A files.json file also gets generated, so retrieving the right file will be super easy.

Next step is to finalize the server and tighten up security, and more testing before I head over to the inventory system.

Stay tuned, more is coming!