You are browsing as a guest. Sign up (or log in) to start making projects!

Justin-F

@Justin-F

Joined June 3rd, 2026

  • 10Devlogs
  • 8Projects
  • 3Ships
  • 45Votes
A python beginner that is interested in hardware and cybersecurity. Linux Fedora Goated
Ship

Built a terminal number guessing game where you go head to head against a computer. You both guess each other's numbers and whoever does it in fewer tries wins. The computer uses binary search so it finds any number between 1-100 in 7 guesses max good luck beating it.

The trickiest part was getting the binary search logic right and setting up GitHub Actions to build binaries for Windows, Linux, and Mac automatically on every release.

To test it, download the binary for your OS from the releases page and run it. No Python needed.

  • 1 devlog
  • 1h
  • 1.47x multiplier
  • 2 Stardust
Try project → See source code →
Open comments for this post

1h 8m 31s logged

Devlog #1


Built a terminal number guessing game in Python where you race against a computer. You guess its number, it guesses yours, fewest tries wins. The computer uses binary search so it finds any number between 1-100 in 7 guesses max.

Ran into an infinite loop bug early on, fixed the git email privacy block, fought with GitHub Actions for cross-platform builds. Got it shipped to GitHub with a workflow for Windows, Linux, and Mac binaries. Mac build is still being annoying.

0
0
7
Open comments for this post

1h 50m 15s logged

Sentinel File Organizer Devlog #5

Spent way too long on indentation bugs today. The with open nesting issue in add_to_feed and undo_last killed most of the session. I kept mixing up read and write blocks kept and they kept ending up inside each other.

Eventually got there. Rules engine is wired into the GUI, undo button works, dotfile filtering is in. I downloaded a random worksheet to test out my undo function and it did not work.


One bug left: undo moves the file back to Downloads, then the watcher immediately re-detects it and sorts it again. Fix next session.

After that Im going to make the GUI Japanese theme.

0
0
7
Open comments for this post

1h 32m 25s logged

#Sentinel File Organizer Devlog #4

Today I added the basic layout of my GUI:

I implemented the main window layout using PyQt6. The interface is now divided into two panels:

Left Panel:

Activity Feed label
Activity Feed list widget
Displays files detected by the watcher in real time

Right Panel

Status label
Status list widget
Undo button (Currently Does Not Work, Still did not Wire everything)


I used QVBoxLayout, QLabel, QPushButton, Q Widget and QListWidget

0
0
4
Ship

What I Made
A command-line trivia game that fetches live questions from the Open Trivia Database API
and lets you compete for a spot on a local leaderboard.

What I'm Proud Of

Learning how to style terminal output bold text, colors, panels— using the Rich library.
It made the game feel way more polished than plain print statements.

What You Need to Know Before Testing

- You need an internet connection (questions are fetched live from an API)
- Scores save locally to leaderboard.json — don't delete it if you want to keep your scores
- Answer with the number next to your choice, not the text

You will need to look at the repo to see how to play this game

  • 1 devlog
  • 2h
  • 3.47x multiplier
  • 6 Stardust
Try project → See source code →
Ship

**What did you make?**
A 24/7 Slack bot built in Python that responds to custom slash commands like `/slck-coin`, `/slck-dice`, `/slck-ping`, and more. Runs on a nest server using Socket Mode.
---
**What was challenging?**
The guide was in JavaScript so I had to convert everything to Python first. Getting the bot installed into an actual Slack workspace was also way more difficult than expected because I did not know what to do.
---
**What are you proud of?**
After AI explained and taught me the syntax that I needed I mostly did it myself.

**What should people know to test it?**
You can just click on my demo link and test it by joining the slckbot channel.
---
You'll need your own Slack app and workspace. Full setup is in the README — once you add your tokens to .env, just run python slackbot.py, invite the bot to a channel, and try any /slck- command.

Try project → See source code →
Open comments for this post

42m 49s logged

#Devlog #2

I actually did this a while ago but I was waiting for the ship function and I also did not have a demo link.

I added 2 things:

#1: I added slck-motivate
#2: I added slck-shrug


I also updated /slck-list. I removed /slck-time because it took the local time of the nest server rather than whichever device /slck-time was run on. The code is still in VS code but /slck-time is removed from the commands.


I could not post devlogs because I had a bug where hackatime and stardance challenge were not syncing properly but It got fixed.

0
0
3
Open comments for this post

36m 25s logged

#Sentinel File Organizer Devlog #4

Today I added more rules(after I realized it only sorts .pdf) , before it was only sorting pdf files before and now it is sorting much more.

Now it is sorting:

-Documents: .pdf, .docx, .doc, .txt
-Images: .png, .jpg, .jpeg, .gif, .tiff, .svg
-Archives: .zip, .tar, .gz, .deb, .rar
-Videos: .mp4, .avi, .mov, .wmv, .flv
-Audios: .mp3, .wav, .flac, .aac


There was 2 bugs I had today:

file_type in the config was a single string so in wouldn’t work properly, and .lower was missing its parentheses so it was never actually being called.


I was planing to work on the GUI today but I did not, I will do that tomorrow.

0
0
1
Open comments for this post

54m 54s logged

Phase 1 of Sentinel is done. The entire backend logic is built and working. (Right Now it only sorts .pdf, sorting other types of files is part of phase 2)


Built a file scanner using pathlib. Path that reads a folder and prints each file’s name, extension, and size. Then extended it to move files based on their extension using shutil.move().


Added a JSON config system that loads and saves rules persistently between sessions. Each rule stores a name, file type, and destination folder.
Integrated watchdog to watch a folder in real time. When a new file appears, the rules engine checks its extension, finds a matching rule, creates the destination folder if needed, and moves the file automatically.


Finally built an undo system. Every automated move gets logged to config.json with the source and destination. Calling undo_last() reverses the most recent move and removes it from history.


Phase 2 starts now, replacing the terminal output with a PyQt6 desktop GUI and adding more rules to sort more types of files.

0
0
1
Open comments for this post

1h 56m 37s logged

I had a bug for the past few days that did not let me log hours. Here’s what I did:


part 1 - I created code that scans folders using pathlib.path and printed each files name that got moved.

Part 2 - Takes a hardcoded source file and destination folder, creates the destination if it doesn’t exist using .mkdir(parents = True, exist_ok = True), and moves the file using shutil.move()

Part 3 - Loads rules from config.json using json.load() prints them and has an add_rule() function that function that appends a new rule dict and saves the updated list back using json.dump()

Part 4- A live file watcher using watchdog. Creates a Sentinel Handler class that inherits from FileSystemEventHandler and overrides on_created to print the path of any new file. Uses an Observer to watch the Downloads folder in the background. Keeps the program alive using an while True loop and stops the program using KeyboardInterrupt

Part 5 - Extends Part 4 with a rules engine. When a file is created on_created loads rules from config.json, checks if file’s extensions matches any rules file_type, creates the destination folder if needed and moves the file automatically using shutil.move()

Part 6 - Still in progress. Extends Part 5 with an undo history.

0
0
1

Followers

Loading…