We have our requirements for our tool to find new photos. Now we need to figure out how we are planning to do it. What technologies will we use, and what are the moving parts.
Technologies
Development Environment
The system will be written in Python, which is the second best language for every problem. The reasoning is:
- Python is cross platform, so this will work on Windows, Mac and Linux.
- I haven’t done much with Python, so it will be a fun project.
- Python is good at dealing with large blocks of data, which we might come face to face with here.
Visual Studio Code – is there an alternative? I might get frustrated and move to a Python IDE – will see how nicely VS code plays with Python.
Persistence
We will use a Mysql database to store data. This must be set up in advance. The reasoning is:
- Having made a search, you may want to spend some days going through the results, so the results must persist.
- Mysql is light and easy, and I know it.
At this point we only need to keep the results of the current search. We need the following info:
- Master folder / folders to be searched.
- Which folders / subfolders have already been searched.
- The file path to each photo that has been processed.
- The size or whatever it is that we are storing, which we will be using for comparison.
We need a way to manage the database above
- Read looking for duplicates files – at this stage just a database search
- Write – add new files
- Update – add new files, folders, and completed folders to the results
- Delete – clear out all the results.
User Interface
- A welcome screen, where a user can choose whether to Start, Resume or Review a search.
- A folder picker, so the user can navigate to the master folder.
- A list view where duplicates are displayed, batched together for easy reviewing.
Project Management
I like to work in an organised environment, so will use a storyboard to manage tasks. Jira because I already have SourceTree and it seems to work well.
Research
- Stack Overflow
- ChatGPT
Let’s Go
Right, let’s get some stories up on Jira.
Haha Jira – so much for that. I cannot make the window big enough to find the ‘next’ button – I presume there is one.
Instead of trying to follow the tutorial, I clicked on the link in my email from Jira. For no fathomable reason, that view was scrollable. We’re in. And it’s free, so I don’t pay enough to complain.