Activity

artur33

Added/Fixed:

  • Presence system implemented (online/offline/invisible/do not disturb states)
  • Theme system implemented (+ light theme stylesheet added)
  • Database updated for supporting new stuff (presence and themes)
  • Avatar widget with colored presence indicator (the presence can be toggled by clicking directly on it)
  • Presence indicators now visible in members list, DM view and user profile
  • Presence automatically set to offline on logout/exit
  • Online friends view added in DM section
  • Periodic DM refresh added to update online friends and DM status
  • Minor stying updates and bigger light theme style update

Note: I originally thought the project was basically finished and that I would only do bug fixing, but while testing the app I realized that some important features are still missing, so I decided to implement a few more things before shipping.
I also implemented the light mode. For the styling I honestly used some AI help because writing the entire ‘light style’ manually would have taken quite a while, and at this point I’m trying to finish all this stuff.

Next:

  • Message delete and maybe edit
  • Server roles (at least the Owner who is the only one who can create channels)
  • More BUG FIXING?
  • TESTING
  • Other?
  • SHIPPPPPPPPPPPPPPPPPPPPP FINALLY
0
artur33

Added/Fixed:

  • Settings implemented with persistent user configuration (DM notifications, mention notifications, compact mode)
  • Database changes for storing and getting settings + password updates, user deletion and session cleanup
  • Settings modal implemented with tabs: Account, Notifications and Appearance
  • Account management features: username change, password change and account deletion
  • Compact mode rendering implemented for chat messages
  • Inline preview for image attachments from raw data
  • Periodic member list refresh added (5sec)
  • Styling updates and painful stuff
  • Various UI refinements, handling and bug fixes, like the 50mb attachment check before its loaded into RAM (that’s why everything was freezing before lol), and other fixes, yeah

Note: This update was mainly focused on getting the settings system working, and yeah, I know, there aren’t much settings, but I really don’t have much time at this point :(
I also spent some time improving attachments for image preview (looks very good, but I’m not sure if this will work on all the Terminal emulators… well, on Windows Terminal it works) and adding compact mode rendering so chats can be displayed in a more minimal layout.
At this point the project is very close to the end, so I think that I won’t add more big stuff, uhm, I guess

Next:

  • More BUG FIXING
  • TESTING
  • Other???
  • SHIPPPPP FINALLY
0
artur33

Added/Fixed:

  • Editable user profiles system implemented
  • Database expanded with new profile fields (pronouns, status, name_color, accent_color and connections JSON) + notes table and related db functions for notes and profile editing + some db queries updated to include name_color for message rendering
  • User profile UI expanded with pronouns, status, accent banner and connected accounts
  • Edit Profile modal implemented to customize profile information and appearance (shown name, pronouns, status, bio, username color, accent color (of the banner) and connected accounts)
  • Private user notes system implemented (notes stored per user and visible only to the note author)
  • User info panel update and now refresh after profile edits
  • Styling updates for profile panels, accent banners, edit profile screen, info panel, profile stuff ye, etc… [THIS WAS A PAINNN!!!!!]
  • New helpers in ‘utils.py’ for color managment
  • General UI improvements and a lot occured bugs fixed
  • It is still kinda unstable… ugh

Note: This was probably the most difficult devlog of all my flavourtown projects. I spent more than 8 hours working on all this stuff, ohh my gosh… At first I actually started implementing profiles in a completely different way, but after about an hour I decided to scrap that approach and rewrite using the current structure yeah
Even now it still feels a bit unstable, but I tried my best to make it work within the time I have left. A lot of the difficulty came from the constant problems/bugs, UI updates (STYLING), and profile editing all together without breaking everything
Only 5 days left now… I’m honestly not sure how much more I will be able to implement, my plan now is probably to add some very minimal settings, then focus on fixing bugs and reviewing everything to make sure the application is at least stable enough, and then compile… aaaaaaah, wish me luckk

Next:

  • Fast Settings
  • BUG FIXING
  • TESTING
  • Other?
  • SHIP FINALLY
0
artur33

Added/Fixed:

  • Search system implemented for messages and members across channels and direct messages
  • Database search funcs added for search system
  • UI styles added for search results and some members collumn modifications
  • Minor stuff related to search

Note: For this update I decided to just focus on finishing the search functionality. I thought about implementing a live updating search (results updating while typing), but in the end I decided to do that later, right now I need to move on to the next features because time is starting to get tight

Next:

  • Profile customization
  • Settings
  • Other
Attachment
Attachment
Attachment
0
artur33

Added/Fixed:

  • Unread tracking system implemented (for channels/servers and DMs)
  • Notifications system implemented (for DMs and Mentions)
  • Database backend modified for unread messages across servers/channels and direct messages
  • Conversations are automatically marked as read when opened to keep unread state consistent ofc [spent some time to get this to work]
  • Mentions system implemented (detection and highlight in messages + notification)
  • Background polling for notifications and new polling for unreads
  • Displayname/username resolution dedicated func in ‘utils.py’
  • Message refresh interval lowered to make updates feel more responsive (all set to 1)
  • Styling updates for unread stuff
  • Initial styling added for the search input (search feature still WIP)

Note: This time I actually wanted to devlog earlier: I had already started working on the search functionality, but then I stopped and decided it was better to devlog the notifications and mentions system first before continuing :p

Next:

  • Search
  • Profile customization
  • Settings
  • Other
0
artur33

Added/Fixed:

  • Direct Messages system implemented (actual chat between friends) (DM storage inside the database)
  • ‘Open a DM’ flow added for chatting with friends
  • DM user panel implemented (same info as the profile modal) (members panel integration updated to support it)
  • Profile modal changed (same info as the DM user panel)
  • Day separators added to visually separate conversations by date
  • Compact message grouping implemented (consecutive messages from the same sender within a short time are visually grouped together like the real Discord or other services)
  • Message attachments can be discarded
  • Friend removal func
  • Pending request check in database
  • Styling updates for day separators, compact message groups, DM panels, profile modals, etc.
  • Minor UI improvements

Note: I’m tired :(

Next:

  • Mentions
  • Search
  • Profile customization
  • Maybe some kind of notifications
  • Settings
  • Other
Attachment
Attachment
0
artur33

Added/Fixed:

  • Friends system implemented (friend requests + friend list)
  • Friend request flow implemented (send, accept/decline requests)
  • Database backend modified for managing friendships and pending requests
  • Direct Message UI implemented (Inbox section, idk how should I call it, I just called it “dm” and the other ones are “server”
  • DM navbar with views for friends and pending requests
  • Friend cards and request cards added for viewing friends
  • User profile modal for viewing user info when clicking on a user in the members list
  • ‘Add friend’ modal to add a friend by knowing the username
  • UI/UX improvements
  • All screens converted to modal screens
  • Logout button added near the current username
  • Attachment size limit set to 50MB max
  • Styles added for DM interface components
  • General UI style changes for better usability

Note: This update took some time againnnn because there were a LOT of bugs. The DM views especially were completely broken at first, the navigation didn’t work correctly, elements were appearing in the wrong places, and overall the UI logic was kind of a mess… CSS was also a pain again (as usual). Even small visual adjustments sometimes required a lot of trial and error to make things look acceptable.
Because of some IRL stuff I probably won’t have enough time to implement a huge amount of additional functionality before the end of FT, ugh, we will see :(

Next:

  • Direct Messages (actual chat between friends)
  • Mentions
  • Search
  • Profiles
  • Maybe some kind of notifications
  • Settings
  • Other
0
artur33

Added/Fixed:

  • Message sending implemented for server channels
  • Attachment system implemented (persistence, meaning that binary data + filename are stored in the database)
  • Attachment UIs implemented + ‘attach button’ added to the message input “box”
  • Live message updates implemented (polling each 5 seconds, only the new messages instead of reloading everything (for optimization))
  • Styling for messages and attachments
  • Fixes for UI issues (screen callbacks[/previus devlog problem]) and other minor stuff

Note: Once again this update took quite a bit of time to figure out the way to implement things. There was an especially annoying bug when fetching messages (the polling auto-fetch) from the database: the order was completely wrong… Then there were a LOT of CSS problems again, uhm, small UI changes can take way longer than expected, ye :(
It feels like implementing even a single feature takes a lot of time in this project, but it’s starting to look decently (at least for my eyes lol :/ )
Next big step will probably be user and friends management and then DMs… which I already feel like will be quite painful to implement, aaah

Next:

  • User popups (like all the id thing? or the nicknames? idk)
  • Friends + Direct Messages
  • Mentions
  • Profiles
  • Settings
  • Other stufffffff
0
artur33

Added/Fixed:

  • Server (multi server (create and join servers using invite codes)) and channel system implemented
  • Database expanded to support servers, channels, members and messages (messages still WIP) stuff + helpers
  • UI screens to: create new servers, join servers via invite code, create channels inside servers, show invite codes, and the main UI ye…
  • Styling added for new UI components [styling is so baka… I used AI to fix some problems, uh :/]

Note: This devlog took a bit longer than expected because I couldn’t get a version of the project that felt stable enough to commit. Even though it might look like not that much was added, a lot of time was spent figuring out how to properly structure things with Textual and how to make the UI work. Textual is uhm, idk, is difficulttt, hm. I also know I probably should devlog more often instead of waiting for a bigger update, but I don’t really like committing half-broken features… which is kinda funny because that’s basically what I’m doing now anyway because there is currently a known issue: after creating a server or a channel the UI does not update automatically yet… For now: when creating a new server the application needs to be restarted and when creating a channel you need to click the server button again to refresh the channel list. So yeah… that still needs to be fixed. My God I’m exhausted, need to sleep now…

Next:

  • Fix problems
  • Sending messages in servers
  • User popups
  • Friends + Direct Messages
  • Mentions
  • Profiles
  • Settings
  • Other stufffffff
0
artur33

Note: New projecttttt: a Discord-like messaging application that runs in the terminal using the Python framework Textual. For this project I initially planned to build everything completely from zero, but I decided to reuse the authentication logic from one of my previous projects since it was already good ig. It saved quite a bit of time and let me focus more on the UI side of the application. Also Textual is actually really interesting to work with it feels surprisingly powerful that I can do TUI stuff this fast.

Added:

  • Created the main app class and screen system + project structure (main.py, screens.py, style.tcss, db.py, auth.py and utils.py)
  • Implemented screen routing with “login” and “main” screens
  • Login and Register UI
  • Authentication system (reused the auth logic from one of my previous projects instead of rewriting everything from scratch)
  • Database system (SQLite3) -> Still everything WIP
  • Initial Discord-like layout (servers, channels and members columns, user info, chat area and input for the message) -> nothing really works, still WIP

Next:

  • Servers (creation)
  • Channels
  • Sending messages in servers
  • Members list (and user popups)
  • Friends + Direct Messages
  • Mentions
  • Profiles
  • Settings
  • Other stuffff, idkkk
0
artur33

Shipped this project!

Hours: 38.1
Cookies: 🍪 533
Multiplier: 13.98 cookies/hr

After about 2/3 weeks of working on it, I’m shipping CLI-Inbox!!
It’s a Gmail client that runs in your terminal. You can read full email threads, write and send emails with a proper terminal text editor, reply, forward, manage drafts, search, create and manage labels, download attachments, attach files when composing, and switch between multiple Gmail accounts.
I thought I didn’t have much time, but then Flavortown got extended so I took it easier lol (so yeah, I thought this to be my last ft project, but now I don’t think so, hihi).
IMAP is genuinely one of the messiest things bruh (I mean, this protocol has so many quirks and edge cases uhh, all the ID issuessss aaaaaa), also the Label handling was painful because they depend on the language of your gmail account, then thread handling also caused a lot of problems (there was a bug with message IDs and label targeting when fetching threads), THEN THE DEMO MODE was genuinely harder than I expected… making it behave like a real IMAP/SMTP backend without actually connecting to anything required monkey patching, which I had never done before [If you’re trying the project, please just use a real account, the demo is more of a “look what the UI looks like” thing than a perfect simulation].
The last devlog was almost entirely bug fixes and stuff, omg, this was so annoying aaah, I’m sure that there are some other bugs, so please find them and tell meee, uhhh.
Anyway, I discovered the “rich” library, I found it kind of by accident when I was trying to figure out how to make a decent table layout in the terminal, it works fine yeah, and it’s pretty easy to use (I’ve also seen Textual now, which is basically “rich” but for full TUI applicationssss! ).
Also, email as a format is way more complex than it looks from the outside: HTML emails, multipart messages, attachments encoded in base64, quoted-printable encoding, timezone differences, threads linked by message IDs, etc. there’s a lot going on behind an email lol, that was interesting to discover :)
I’m proud of, uhm, just that it works, it actually works, that’s pretty enough for me, hah, there are all the basic features of an email client and it’s usable, so that’s what makes me proud. I also tried to keep the codebase clean which made it easier to keep building without getting too lost (unlike my first ft project, where I got completely lost in the codebase…).
Oh and last thing, maybe someday I will add an Outlook support, I wanted to add it but honestly Gmail was already enough complexity, so yeahhhh, maybe I’m just lazyyy.
Anyway, time to ship it nowwww :D

artur33

Added/Fixed:

  • Fixed demo message ordering and missing fields
  • Ensured CC/BCC default values are always present in demo mode
  • Corrected label iteration logic
  • Improved star/unstar handling (keeps Starred and All Mail in sync) in demo mode
  • Improved trash/delete flow in demo mode and added untrash command
  • Null/invalid correct fetch
  • Version info command
  • Improved help command message
  • Alias system improved (argument expansion)
  • Account credential validation with retry flow
  • Demo mode now shows a clear prompt indicator
  • Escapes rendered headers to prevent markup injection issues
  • In general A LOT of bug fixes, small improvements, and random stufff, I just can’t list them all, these are the most important ig
  • Wrote the README (with AI help)
  • Added ‘requirements.txt’
  • Added banner and icon
  • Created the executable (with Pyinstaller ‘cliinbox.spec’)
  • Tested if everything works

Note: Last devlog for this project yay . This one took some time because it’s mostly fixes, edge cases, and making everything work somehow. Not the most “visible” update, but probably one of the most important for the usability lol. Overall, well, I’m really happy with how this turned out. It became a fully usable CLI email client, I also wanted to do an Outlook support, buuuuuut yeah, I just decided to let it be only for Gmail. It’s not perfect (demo mode is still a bit strange), but it’s definitely something I can actually improve sometime. Also yeah, I learned especially about IMAP weirdness, email stuff, and CLI UI/UX (I discovered Rich, and… I’ve seen Textual, hmmmmm, there is another month for cooking, who knowsss, maybe the next project will be using this framework, ehe, we’ll see :) )

Next:

  • SHIPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
Attachment
0
artur33

Added/Fixed:

  • Draft system implemented (“compose” UI now supports saving drafts when cancelling writing)
  • New command ‘edit’ to modify/send drafts
  • Compose workflow now lets modifing the To, CC, BCC and Subject fields
  • IMAP and demo helpers for saving and deleting drafts
  • Command alias system implemented (allows custom shortcuts for commands)
  • New commands: ‘alias’ and ‘unalias’
  • Command parser now resolves aliases automatically, btw this is the same behaviour as one of my previus project, so yeah :p
  • Minor fixes and refactorss

Next:

  • BUG FIXINGGG
  • Testttttttttttt
  • Make an executable
  • Shipppppppppppppppppppppppppppppppppppp
0
artur33

Added/Fixed:

  • Label management system implemented
  • Commands to create, delete, rename, set, and unset labels
  • Demo mode added (allows running the client without real credentials) (demo.py) (use the --demo flag to start in demo mode) (the email in demo mode is: [email protected])

Note: The label system was actually done in like… 30 minutes, the rest of the time was spent on the demo mode. At first I thought it would be easy but uhm… no. I ended up using AI for a suggestion on how to approach it, and it (chatgpt) suggested using a ‘monkey patch’ technique. I spent some time understanding how that works and then implemented it. It was kinda ok in the end, I only needed some help for the threads inside demo mode. And yeah, it works, but it’s still a bit buggy and weird in some cases AAAAAAAAAAAA… it’s DEFINITELY better using a real accounttt, so please use a real accounttt.

Next:

  • Other things that come to my mind?
  • BUG FIXINGGG
  • Testtttt
  • Make an executable
  • Shipppppppppp
0
artur33

Added/Fixed:

  • Multi account support implemented (keyring stores multiple email accounts (ONLY GMAILLL))
  • Commands to add, list, switch, and remove accounts
  • Accounts are automatically set as active when used (fixed bugs and stuff with this)
  • New settings added: auto_mark_read and default_label
  • Settings loader now merges defaults to support updates without breaking anything
  • Added date header to emails and normalized displayed dates to the local timezone (beacuse the time in the inbox was broken)
  • Minor fixes and adjustments yee

Next:

  • Trial mode with a fake email (for testing (for the shipp))
  • Custom labels management
  • Other stuff, I still need to think…
  • BUG FIXINGGG
  • Shipppp
0
artur33

Added/Fixed:

  • User settings system implemented (settings.py): for now: emails_per_page, download_folder, and signature
  • New commands (‘settings’ and ‘setting’) to view and update settings
  • Settings automatically loaded on startup and saved when modified
  • Inbox pagination now respects the emails_per_page setting
  • download_folder setting used as the destination for attachments
  • Added support for CC and BCC fields
  • Signature automatically appended to composed emails
  • Send confirmation now displays attachment details
  • Minor fixes: I found out a lot of them, but I used a bit of AI to fix them, ye :/

Next:

  • Account management
Attachment
Attachment
Attachment
Attachment
0
artur33

Added/Fixed:

  • Threaded conversation support implemented (fetches IMAP thread IDs and groups related messages) allowing viewing an entire conversation instead of single emails
  • Threads supported both in the terminal UI and browser view (‘open’ command)
  • Attachment support added (support of attaching files when composing emails)
  • Displays attachment list in the email view
  • New ‘download’ command to save attachments
  • Message dates fix
  • Resolve label resolution implemented (see Note)
  • Other fixes and stuff AAAAAAAAAAAAAAAAAA

Note: There was a issue with message IDs when I was implementing threads. I tried to reason through the IMAP behavior myself but, uhm… yeah, in the end I used AI for helpp, it suggested the ‘resolve_label’ function that fixed the label targeting problems. This devlog was the hardesttt, uhhh sob-ios also the videos take too much of my timeee, it’s like 1 hour just to censor my email everywhere in the recordings bruhh, now I need to study, Math test tomorrow :/

Next:

  • Account management
  • Settings
0
artur33

Added/Fixed:

  • Parses HTML email parts while preserving the raw HTML content + generates a plain text fallback using the ‘html2text’ library
  • New ‘open’ command that opens an email (HTML or text) in the system browser (allowing proper viewing of complex HTML emails when the terminal view is baddd)
  • Composer modified for reply editor: now prefills quoted content from the original message
  • New ‘forward’ command to forward emails (automatically includes original message content)
  • Minor internal fixes

Note: Initially I planned to use the w3m CLI browser to render HTML emails directly in the terminal, but nothing was really working properly. In the end I went with two separate approaches: terminal display uses ‘html2text’, and the new ‘open’ command allows viewing the full HTML version in the browser.

Next:

  • Attachment download and send
  • Threaded email view
  • Account management
  • Settings
Attachment
Attachment
Attachment
1

Comments

Cyber Ninja
Cyber Ninja about 2 months ago

cool project

artur33

Added/Fixed:

  • Commands (‘next’/‘prev’/‘page’) to navigate between pages for now it’s still 20 emails per page (will do settings laterrr)
  • Star and unstar emails
  • Mark emails as unread
  • Delete emails (moves to trash)
  • Archive emails DOESN’T WORK FOR SOME REASONN I will fix in the next devlog if I can bruh
  • Automatically detects default labels used (this is because of different languages problems)
  • Shows “To” field when viewing sent emails
  • Starred messages visually highlighted in the inbox + star collumn
  • Prevents occasional decode errors when parsing messages
  • Fixed some other problems and sidebar now displays as the same height as the email part of the layout

Note: this took some time because of the ‘archive’ problem and some “gmail language” problems, hm (that’s why I added the default labels func and dict)…

Next:

  • Display HTML emails properly
  • Attachment download and send
  • Account management
  • Settings
0
artur33

Added/Fixed:

  • Email search functionality implemented (search results update the active message list)
  • New ‘search’ command
  • Labels now integrated directly into the main inbox view layout (responsive for wider terminals)
  • Small layout and rendering fixes

Next:

  • Star, delete, archive and mark unread actions
  • Display HTML emails properly
  • Attachment download and send
  • Account management
  • Settings
Attachment
0
artur33

Added/Fixed:

  • Label support implemented (lists available labels over the inbox, switching between labels using the ‘label’ command + fixed all the million IMAP problems -> that’s because I’m baka dev, the fix was easy, just separating the ‘name’ and ‘display’ in get_labels func…)
  • Message flags now fetched from IMAP
  • Unread emails are now bold in the UI inbox
  • Emails automatically marked as “seen” when opened
  • Threaded reply fixes (but still incomplete) (replying to emails preserves parent references)
  • Minor rendering improvements in the inbox and other stuff

Next:

  • Email search functionality
  • Star, delete, archive and mark unread actions
  • How can I display HTML emails…?
0
artur33

Added/Fixed:

  • Email compose functionality implemented (interactive terminal editor to write new emails (used prompt_toolkit library))
  • SMTP integration for sending emails
  • Reply support added (automatically fills recipient and subject)
  • Message IDs now displayed in inbox listing
  • Screen clears before commands for a TUI-like flow

Next:

  • Switch between Inbox, Sent, Spam, ecc.
  • Read indicators and behaviour
  • Email search functionality ye
0
artur33

Added/Fixed:

  • Inbox and email UI rendering using the “rich” library (table layout and formatted email display) (ui.py)
  • Inbox fetch limit increased (I’ll need to make a setting for this)
  • New ‘view’ command to open a specific email by ID
  • Email parsing improvements
  • Date formatting func

Note: I discovered the “rich” library while working on the UI and… wow, it saves a lot of time for tables. Feels much more polished with very little effort… incredible, why I haven’t discovered it earlier bruhh :/

Next:

  • Add compose and send email functionality (with SMTP)
  • Switch between Inbox, Sent, Spam, ecc.
Attachment
0
artur33

Note: This project started as a small experiment to see how practical a CLI email client could be lol, I don’t have much time left so I think I will need to grind it, ehe

Added/Fixed:

  • Basic project structure split into modules (main, mail, auth and utils)
  • Simple command loop with command parsing (basically the same as one of my previous projects)
  • Gmail IMAP integration
  • Account setup flow added for first run (Email and password are stored securely using the system keychain (via the ‘keyring’ Python library), and the credentials automatically load on subsequent runs.
  • Login using Google App Passwords
  • Inbox basic fetching implemented (retrieves the latest emails from the inbox (for testing noww))
  • Colored status messages (info, success, error)
  • Other minor additions

Next:

  • Implement a proper UI to display the inbox
  • Add compose and send email functionality (with SMTP)
Attachment
0
artur33

Shipped this project!

Hours: 28.92
Cookies: 🍪 647
Multiplier: 22.37 cookies/hr

Shipping go-drop, a CLI file sharing tool written in Go :)
It lets you serve any file, folder, or text snippet over your local network or expose it to the internet via a tunnel (localhost.run) straight from your terminal.
It started as a tiny personal tool (because I needed to move some files and did’t have a usb drive :/) and I just wanted to transfer files without dragging them through Discord or Drive. It turned into a proper CLI app (kinda…) with a live Bubble Tea TUI, HTTPS with self-signed certs, receive mode, password, file previews in the browser, online tunneling, and QR codes that warn you when your terminal is too small to display them lol.
The hardest part was definitely the Bubble Tea TUI. I lost so much time just understanding how its everything works and restructuring the whole codebase around it. Everything has to flow through messages and I kept breaking things. I’m still not 100% happy with how clean it ended up, but it works, so that’s gud :D
I’m proud that this actually feels like a tool and the online tunnel especially I thought that was going to be difficult to implement and it ended up being easy yeeehh.
The project also taught me a lot about Go, networking, TLS, TUI, and how to build something that just works (in Go). But I still prefer Python after all of this, hihi :)

artur33

Note: Last devlog for this project. This started as a small personal tool to quickly transfer files, but it turned into a (kinda, lol) CLI application. Along the way I learned a lot about Go, a bittt of networking and TUI. The project definitely grew more complex than I initially expected :D

Added/Fixed:

  • QR generation moved fully into the terminal UI
  • Prints warning if the terminal window is too small
  • Properly respects the noqr CLI flag
  • Displays truncated file list before transfer preparation
  • Cleans up printed lines correctly after preparation
  • Active transfer tracking added (server now waits for compleating all the downloads before shutdown)
  • Added text preview support (there was a bug, bruh)
  • Fixed CSS word-wrap issues for long filenames
  • Linux clipboard support improved with “xsel” fallback
  • Fixed filename collision logic in receive mode
  • Wrote the README (with AI help)
  • Created all the executables (I can’t test on MacOS, hope it works, ye)
  • Minor internal fixes and cleanup
  • Tested if everything works (Windows and Linux (Arch))

Next:

  • SHIPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
Attachment
0
artur33

Added/Fixed:

  • File preview system implemented (for images and PDFs)
  • Supports sharing entire directories (auto-zip)
  • Flag to share text (transformed into a .txt file)
  • Flag to specify a custom filename for the shared content
  • Version Flag
  • Progress spinner added for longer operations (zipping / preparation)
  • Download flow changes and refactor (for the success page)
  • Web success page added to trigger the download
  • Dark mode added to pages
  • Internal improvements, little changes and refactors

Next:

  • Fix bugs and everything
  • Build for every OS
  • Shippppppppppppppppppppp
0
artur33

Added/Fixed:

  • Online tunnel support implemented (exposes local server to the public internet) (tunnel.go)
  • Clipboard integration (all kind of URL automatically copy to clipboard)
  • Public URL displayed in the TUI and copied to clipboard too
  • Compact QR rendering (+ UI updated to show public QR)
  • Download page: displays filename, file size, and detected MIME type
  • Minor internal refactors related to tunnel stuff and UI updates

Note: I initially wanted to use ngrok for public exposure, but it ended up being more complex than expected (auth setup and other flow complications). Implementing the localhost.run tunnel flow turned out to be cleaner and simpler. I honestly thought this would be much harder to implement tho.

Next:

  • File preview in browser before downloading (images, text, PDF)
  • Folder support (auto-zip)
  • Dark mode for web pages
  • Fix bugs and everything
  • Build for every OS
  • Shippp
0
artur33

Added/Fixed:

  • Optional HTTPS mode implemented (generates self-signed certificate automatically and then uses TLS listener)
  • Command-line Arg: enable TLS
  • Displays certificate fingerprint in UI foe verification
  • File collision handling in receive mode (Prevents overwriting existing files)
  • Silenced default server logs (prevents UI bugs)
  • Minor internal refactors related to TLS setup

Next:

  • Public share (public URL)
Attachment
Attachment
0
artur33

Added/Fixed:

  • Integrated Bubble Tea TUI (ui.go)
  • UI now surfaces progress, status updates, and errors in real time
  • Upload progress streamed into the UI via events
  • Download completion, limits reached, and errors now emit UI messages
  • Moved QR generation to a dedicated function
  • Cleaner separation between server logic and UI (sometimes not, but I tried :/)
  • Added browser “success page” after upload (redirect flow)
  • Minor flow and stability fixes related to event handling
  • Bugs and problem fixes (a lot)

Note: This was honestly really difficult. I lost a lot of time understanding how Bubble Tea works and restructuring everything around events, I’m not fully happy with the result, but it works and it’s fine for now ig

Next:

  • Certificates
  • Public share (public url)?????????????????????? I’m so cooked…
0
artur33

Shipped this project!

Hours: 36.03
Cookies: 🍪 663
Multiplier: 18.41 cookies/hr

After ~2weeks of working, I’m shipping Root-Dungeon.
It’s a dungeon crawler where your real file system is the game world. Rooms are actual folders on your Desktop, enemies and items are .txt files you open and read, and you use the codes you find in them inside the game window to fight and progress.
Started as an experiment or idea and ended up with a game with combat (both timing based and projectile dodging), locked rooms, leveling and inventory system, combo tracking, achievements, save/load, sound effects, and a debug panel.
The hardest part was definitely the boss battle. The projectile dodge mechanic was the most complex thing I’ve built, and I used AI to help with that part specifically. The rest of the combat and dungeon logic I mostly figured out on my own, which I’m happy about.
I’m proud that the core idea actually works and feels fun: exploring real folders, opening files to find enemy codes, and then fighting them in the window is well, not unique, but there arent’t a lot of projects like this, I really like those kind of games that interact with the OS.
So at the end it went from a folder creation to something that actually feels like a game :)

artur33

Note: Last devlog for this project. I’m honestly really happy with how it turned out, it evolved from an experiment into something playable and interesting I think.

Added/Fixed:

  • Achievements system fully integrated with a separate achievement window (achievements.py)
  • Player death tracking implemented for achievement needs
  • Defeat during the boss battle, max your HP now
  • Used keys are now removed after unlocking rooms
  • Consumed potions are now removed after use
  • Locked room unlock window now displays available rooms
  • Player name prompt at game start
  • Formatting corrections
  • Balance tweaks
  • Proper path handling for sounds, saves, and icon when frozen
  • Wrote the README (with AI help)
  • Created the executable (with Pyinstaller ‘socialnet.spec’)
  • Added ‘requirements.txt’
  • Minor internal fixes and cleanup
  • Tested if everything works

Next:

  • SHIPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
Attachment
0
artur33

Added/Fixed:

  • Receive mode implemented to accept file uploads
  • Command-line args: flag to enable receive mode and save uploaded files save path
  • Web ‘upload’ interface added: “drag and drop” support and progress bar
  • Prints (in console) upload progress (transfer)
  • Same QR code generation func for receive mode webpage

Next:

  • UI
  • Certificates?
  • Public share (public url)?????????????????????? I’m so cooked…
0
artur33

Added/Fixed:

  • Multi file sharing support via, saved in RAM, ZIP archive (automatically creates a ZIP when multiple input paths are provided)
  • Command-line Arg: configurable archive name for generated ZIP
  • Transfer size and file listing feedback
  • Logging improvements: prints client IP and transfer activity, prints waiting/progress messages

Next:

  • Upload mode (receive files from other devices)
  • UI…
0
artur33

Added/Fixed:

  • Token access control for downloads
  • Command-line Arg: password protection layer (POST form (web.go) authentication before download)
  • Command-line args: IP download limiting and timeout auto shutdown
  • Shutdown reason codes (completed, timeout, error)

Next:

  • Allow sharing multiple files
  • Maybe a UI? lol
Attachment
Attachment
Attachment
0
artur33

Added/Fixed:

  • Command-line args: custom port selection, download limit control and option to disable QR code output
  • Server shuts down automatically after reaching the specified download (fixed the behaviour for implementing the new args func)
  • Improved CLI output clarity (colored status messages)
  • Explicit display of the download URL
  • Added cache control headers to prevent unwanted caching (this one fixed the automatic shutdown)

Next:

  • A password for accessing download
  • Allow sharing multiple files
0
artur33

Note: This project started as a quick personal tool to transfer files without external services, and as a way to learn Go, ehe, I’m not really good at this language

Added/Fixed:

  • Temporary HTTP file sharing implemented
  • Automatic host IP detection
  • Terminal QR code generation (trough this package: go-qrcode)
  • Server automatically stops after the file is downloaded once

Next:

  • Add optional flags like port selection for example
  • Some kind of status of the file on host
  • A password for accessing download
  • Allow sharing multiple files
0
artur33

Added/Fixed:

  • JSON based save & load system implemented (save and restore data and game state, DON’T DELETE DUNGEON FOLDER AND OTHER STUFF IN THERE)
  • UI buttons added for saving and loading (and achievements -> still wip)
  • Boss attempts and defeats tracked across runs (for achievement, still wip)
  • Minor other changes

Next:

  • Add achievement system for replayability
  • Bug fixes and final stability pass
  • Shippppppppppppppppppp
0
artur33

Added/Fixed:

  • Runtime gameplay stats system (tracks run duration, damage dealt and damage taken, hit timing accuracy and breakdown, potions used, enemies defeated and max combo reached)
  • Boss battle improvements: Boss attack-bar UI added with timing based hit logic (same as for normal enemies)
  • Sound feedback system (hits, misses, attacks, level-up, victory and defeat sounds added) (sounds.py) [sounds in the ‘sounds’ folder]
  • End-of-run statistics displayed on victory (Game ending)
  • UI layout adjustments for battle and endgame stats

Next:

  • Add save and load (in a json file ig)
  • Add achievement system for replayability
  • Bug fixes and final stability pass
  • Shippppppppppppppp
0
artur33

Added/Fixed:

  • Boss integrated into dungeon generation
  • Boss battle system introduced with a projectile-based fight (heart-dodging movement and projectile attack patterns)(inside ‘battle.py’ as another class)
  • Victory (still WIP, I need to make an endgame statistic) and defeat handling for boss battle
  • Legendary Sword removed from direct item spawns (this was a bug)
  • Other minor fixes and changes

Note: Boss battle system is still incomplete — victory flow has bugs and the player attack turn is not implemented yet. This devlog marks progress after 4 hours… I am tiredddd.

Next:

  • Finish the boss battle system
  • Add end game statistic after defeating the boss
  • Maybe add sound effects
  • Bug fixes and final stability pass
  • Shippp :)
0
artur33

Added/Fixed:

  • Debug panel integrated (F1 keybinding to open debug panel)(debug.py):
  • God Mode toggle (infinite HP)
  • One-hit-kill toggle
  • Full Heal button
  • Add XP func
  • Give all keys button
  • Player last HP tracking added to detect external HP changes
  • Battle UI now forces refresh when HP changes outside normal turn flow (potions/debug)
  • Fixed key naming mismatch (renamed corridor key and aligned enemy drop)
  • Minor internal refactors related to debug hooks and battle state synchronization

Next:

  • Implement the final Boss Battle, an Undertale-style battle system for the Boss, now I will work on this, oh myyy…
Attachment
0
artur33

Added/Fixed:

  • Combo system implemented for battles: perfect hits increase damage and grant bonus XP (+ track of max combo)
  • Math puzzle based room unlocking integrated into progression (puzzles.py)
  • Potion usage fully implemented (inventory tracking and healing logic)
  • Legendary Sword system added (Legendary Vault unlock logic)
  • Miniboss marking and handling
  • Room-prefixed unique code generation (different from only numbers like before)
  • Reset func for full player + dungeon state reset
  • Folder lock checks now propagate up for directory paths (full ones)
  • Startup and cleanup flows improved to properly reset everything (before there were errors because of this)
  • Enemy data reorganized (for different Enemy, Miniboss and then Boss -> next devlog)
  • Minor internal refactors and stability fixes

Next:

  • Implement the final Boss Battle, I thought of making an Undertale-style battle system for the Boss, at least I will try to do it…
  • I also noticed that I need some kind of cheat panel (or debug) to speed up playtesting and bug finding (infinite health and “one hit kill” at least)
0
artur33

Added/Fixed:

  • Item spawning and loot system integrated in the dungeon rooms (items.py)
  • Code protected item files with validation before collection (same as for the enemies and room unlock)
  • Item effects system updating player stats and inventory
  • Expanded dungeon content with additional item and key drops tied to enemy encounters
  • Combat balance adjustment: defense now fully applied in damage calculations
  • UI updated to support item collection and potion interaction (still WIP)
  • Minor layout tweaks and internal refactors

Next:

  • Add combo system to battles
  • Implement potion usage functionality
  • Design and integrate puzzle mechanics
  • Fix problems and bugs
0
artur33

Added/Fixed:

  • Battle system improvements with proper victory callbacks and end states
  • Locked rooms logic: now requiring specific keys to access
  • Enemies are now locked to rooms and correctly removed after defeat
  • Player leveling
  • Inventory management expanded to get keys and drops
  • Clearer defeat and victory feedback in battles
  • Minor internal refactors related to battle flow and dungeon progression

Next:

  • Plan and implement additional items (healing items, weapons, buffs, etc.)
  • Expand dungeon with more rooms and enemies (new keys and game logic)
0
artur33

Added/Fixed:

  • Timing based attack system with visual attack bar
  • Dynamic HP bars for both player and enemies, based on max HP
  • Added a welcome (README) file at dungeon start to guide the player
  • Minor internal refactors related to battle and battle window UI

Next:

  • Enhance and complete the battle system (enemy file removal after defeat, clearer end states (player’s level progression))
  • Implement locked rooms and access logic
  • Design items, keys, and game logic
0
artur33

Added/Fixed:

  • Enemy spawning logic integrated into dungeon room creation (the start of the game) (enemies.py)
  • Each enemy is assigned a unique fight code
  • Fight system for now allows initiating battles via code, still WIP (battle.py)
  • Now using a dictionary to store game stats
  • Added basic quest tracking in the main UI
  • Minor UI tweaks and internal refactors

Next:

  • Continue with the battle system (will make a classic timing-based “click in time to deal more damage” thing, for now maybe, ehe)
  • Design items, keys, and game logic
Attachment
0
artur33

Added/Fixed:

  • Improved main window UI layout with clearer separation (using frames) between title, stats panel, and game log area
  • Added a scrollable game log to display game events and actions, later
  • Player stats now update and logic ( in player.py)
  • Dungeon cleanup/reset with confirmation dialog
  • Refactored dungeon creation logic into external module (dungeon.py)
  • New buttons: ‘Unlock Room’, ‘Fight Boss’ and ‘Cleanup’
  • General UI cleanup and small internal refactors

Next:

  • Add enemy spawning logic
  • Plan and implement fight mechanics, hm…
  • Design items, keys, and game logic
Attachment
0
artur33

Added/Fixed:

  • Initial Tkinter UI (main.py) with a main window and primary controls: ‘Start Game’, ‘Open Folder’ and ‘Fight’ (still placeholder WIP)
  • Dungeon folders creation logic
  • Created config.py (just for the path for now)

Note: I’m still thinking about the project structure so there could be changes and refactors

Next:

  • Complete the main game windows UI
  • Implement player stats (HP, level, inventory, etc)
  • Add enemy spawning logic
Attachment
0
artur33

Shipped this project!

Hours: 85.81
Cookies: 🍪 2445
Multiplier: 28.5 cookies/hr

After a month of working on it, I’m shipping CLI-SocialNet
It’s a “full” social network platform (similiar to Twitter (X)) that runs in a terminal.
Started as a way to learn SQL databases and ended up doing a lot of features and commands: posts, comments, likes, follows, DMs, polls, hashtags, an XP system and even ASCII art in posts (conversion).
The hardest part was probably the fact that I was getting lost in my own codebase as it grew, I had a lot of files and implementing new functionality became a bit complex. The MongoDB part was also challenging (I used the most AI in there (MongoDB) to speed things up after already learning what I wanted from SQL).
I’m proud of the result, of course, it actually feels like a real social network. Maybe it’s not the most original thing to make, but I’ve done it on my own. The project taught me how to build “big” projects (since I think this is my biggest project?) and try not to get lost in the codebase lol

artur33

Last devlog for this project, it was a good one, I think I’ve learnt a lot about SQL databases (Which was the main goal for me) and yeah, it was a big project (at least for me, hehe), I’m very happy and proud ^^

Added/Fixed:

  • Refactored configuration handling with a dedicated loader module (and updated all config references in other files) (config_loader.py)
  • Improved ‘help’ command output for better command viewing
  • Adjusted post rendering alignment
  • Wrote the README (with AI help)
  • Created the executable (with Pyinstaller ‘socialnet.spec’)
  • Added ‘requirements.txt’ and ‘config.json’
  • Removed ‘config.py’
  • Minor internal refactors and cleanup

Next:

  • SHIPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
Attachment
0
artur33

Added/Fixed:

  • Reporting system for posts, comments, and users
  • User command to submit reports: ‘report’
  • Admin commands to review, resolve, or dismiss reports: ‘admin reports’, ‘admin resolve’ and ‘admin dismiss’
  • Minor internal refactors related to moderation

Next:

  • Fix problems/bugs
  • Make an executable (or smth like that)
  • Shipppppppppppppppppppppppppp
0
artur33

Added/Fixed:

  • XP system with tracking for user interactions (posting, liking, commenting, reposting and following)
  • Achievements system and rewards for them
  • Leaderboard to rank users
  • Terminal width customization (in settings) for more flexible UI
  • New commands: ‘xp’, ‘achievements’ and ‘leaderboard’
  • Minor internal refactors and fixes related to visibility (users can always view their own content even if private -> this was a bug in the sqlite database)

Next:

  • Fix problems/bugs
  • Make an executable (or smth like that)
  • Shipppppppppppppppppp
0
artur33

Added/Fixed:

  • User settings system with customizable preferences
  • Appearance settings: banner color and prompt color
  • Display settings: posts per page
  • Notification preferences settings
  • New commands: ‘settings’ and ‘setting’
  • Minor internal refactors and fixes related to settings (like the login and logout commands and all the banner/prompt colors) and notifications

Next:

  • Add levels and xp system (more interactions more profile level)
  • Fix problems/bugs
  • Make an executable (or smth like that)
  • Shipppppppppppp
Attachment
Attachment
Attachment
Attachment
Attachment
Attachment
0
artur33

Added/Fixed:

  • Poll support for posts: users can create polls, vote, and view results/own polls
  • Both database (Sql and Mongo) schema updates to support polls
  • Post display enhancements to correctly render poll options (‘utils.py’)
  • Changed the ‘whoami’ command (a bit)
  • New commands: ‘postpoll’, ‘votepoll’ and ‘mypolls’

Next:

  • Add some small settings features
  • Maybe add levels and xp system (more interactions more profile level)
  • Fix problems/bugs
  • Make an executable (or smth like that)
  • Shippppp
Attachment
0
artur33

Added/Fixed:

  • Completed the MongoDB database backend file
  • Resolved all compatibility issues between MongoDB and the existing codebase by aligning MongoDB behavior with existing commands and “feature expectations”

Note: This devlog marks the end of the MongoDB work. I did use AI during this, mainly to fix bugs and problems, and yes… a lot of tab autocomplete
No new features were added here: the focus was entirely on making MongoDB fully compatible with the rest of the project without breaking everything, yeah

Next:

  • Add polls in posts
  • Possibly add some small settings features
  • Maybe add levels and xp system (more interactions more profile level)
  • Fix problems/bugs
  • Make an executable (or smth like that)
  • After that, probably, the project will be ready for shipping
0
artur33

Added/Fixed:

  • Addad a switch for database backend (sqlite3 - MongoDB)
  • Expanded (and still working on) MongoDB logic [for now: users, posts, sessions, likes]
  • Standardized post ID handling (just by making it an int everywhere) across ‘main.py’ commands.

Note: This devlog is mostly to document progress. I’m still working on the MongoDB backend and not really adding new features… just copying the sql database logic and making sure things don’t explode.

Next:

  • Continue working on the MongoDB backend
  • Make things work :p
Attachment
0
artur33

Added/Fixed:

  • Private account (no visibility of content)
  • Access control updated to allow content viewing of private users only if mutual followers (can_view_content func)
  • Registration rate-limit per device (hash composed by hostname-MACadress-system) to reduce spam registers
  • Large ASCII ‘big text’ posts support + preview command
  • Improved login failure handling: account lock after 5 wrong password attempts.
  • Started working (a little little bit) on the MongoDB database
  • New commands: ‘postbig’ and ‘bigtext’
  • Internal refactors and bug fixes related to privacy, authentification and posts

Note: This was probably the most complicated devlog to make so far. A lot of different files and functions, I’m starting to get lost in my own codebase, and honestly… I’m tireddd, ahhh…

Next:

  • Continue/Complete the MongoDB database layer file ‘database_m.py’ (Likely use some AI help for this, since the main goal was learning about SQL-like databases. Also because I alredy did some MongoDB projects so this is just to speed up things, but I will try to do my best)
0
artur33

Added/Fixed:

  • Command alias system for user shortcuts (of commands)
  • Post search functionality to find content by query
  • User search functionality to find other users
  • Mention system with automatic detection during post creation
  • New commands: ‘search’, ‘usersearch’, ‘mentions’, ‘alias’ and ‘unalias’
  • Minor internal refactors and fixes

Note: I NEED TO START WORKING AT MONGO DATABASEEE

Next:

  • Fix and do the TODO’s (private profiles and user creation)
  • Large ASCII text might be cool, but uhhh, aaaaaaa
  • Once again… maybe start working on a MongoDB database aaaaaaaaaaaaaaaa
Attachment
Attachment
Attachment
Attachment
0
artur33

Added/Fixed:

  • Hashtag system with automatic detection during post creation
  • Trending hashtags
  • Hashtag search functionality
  • Help message (for non-logged users)
  • Changed banner (lol)
  • New commands: ‘hashtag’, ‘htrending’ and ‘hsearch’

Note: This devlog was written a bit in a rush again after spending most of the time implementing the hashtag system and fixing edge cases… sowwy

Next:

  • Add finally a command for creating aliases of existing commands
  • User mentions
  • Possibly start working on a MongoDB database option (if nothing comes to my mind)
Attachment
Attachment
0
artur33

Added/Fixed:

  • Repost system for reposts and quote reposts
  • Bookmarking system for saving posts
  • Post pinning on user profiles (Profile displays pinned posts)
  • Conversation closing command for direct messages
  • Notification clearing command
  • New commands: ‘repost’, ‘unrepost’, ‘quote’, ‘reposts’, ‘pin’, ‘unpin’, ‘pinned’, ‘bookmark’, ‘unbookmark’, ‘bookmarks’, ‘closedm’ and ‘clearn’
  • Minor internal refactors and fixes (+ feed and post metadata updated to include repost info)

Note: hashtag functionality will he added in next devlog because I already spent a lof of time doing all of this and I need to make a devlog aaaaaaaa…

Next:

  • Try to implement the hashtag system for post discovery
  • Consider adding command aliases command
  • Possibly start working on a MongoDB database option
0
artur33

Added/Fixed:

  • Notification system for user interactions: likes, comments, follows, and direct messages
  • Unread notification and unread message counts displayed directly in the prompt
  • DM: ‘messages’ and ‘inbox’ UI change
  • Admin “panel” UI change
  • New command: ‘notifications’
  • Minor internal refactors and database schema updates related to notifications and messaging and UI (utils)

Next:

  • Add a repost system
  • Add pinnable posts on user profiles
  • Add post bookmarking /saving
  • Maybe a hashtag system for post discovery (idk how… lol)
Attachment
0
artur33

Added/Fixed:

  • Improved post, comment, and profile display with bordered UI and new structure (text wrapping and Unicode alignment for correct rendering)
  • Comment counts added to posts
  • Profiles now display recent posts

Note: A lot of time was spent making the UI work properly and display everything correctly. I initially tried to make all the layout and formatting logic on my own, but ended up using AI to help reason through alignment, borders, and edge problems/bugs.

The notification system was not implemented in this commit, as development was focused on UI :/

Next:

  • Finish UI changes: for admin views and direct messages
  • Add the notification system
1

Comments

janekmusin
janekmusin 3 months ago

Looks great, I’m looking forward to release

artur33

Added/Fixed:

  • Private account support -> users can toggle private status
  • Direct messaging system (“user-to-user” private communication): Inbox and message viewing logic for direct messages
  • Comment display on single posts (comment count and comments)
  • Minor internal refactors and fixes
  • New commands: ‘dm’, ‘messages’, ‘inbox’ and ‘private’

Note:
UI improvements were not made again… I didn’t really have the time to think about it, so this part is still postponed for the next devlog (or at least hope so)

Next:

  • In the next devlog, focus will (finally) be on a proper UI redesign and cleanup
  • Possibly add a notification system
Attachment
0
artur33

Added/Fixed:

  • Post comments support: add, view, and delete comments
  • Admin log system to track moderation actions
  • User verification (just the verified -> doesn’t change anything, for now) system and admin privilege management (an user can become an admin now)
  • Minor internal refactors and bug fixes related to comments and moderation logic
  • New commands: ‘admin makeadmin’, ‘admin removeadmin’, ‘admin verify’, ‘admin unverify’, ‘admin logs’, ‘comment’, ‘delcomment’, ‘comments’

Note:

UI improvements were not made. Development was slowed due to some “implementation challenges” for the comment system, especially regarding comment IDs (I’m still not that good at databases…)

Next:

  • Enhance “comment” commands (current implementations is very basic)
  • Finally the UI cleanup and visual improvements (maybe)
  • Adding direct messages between users
Attachment
0
artur33

Added/Fixed:

  • ‘ascii.py’ for image-to-ASCII conversion [I’ve spent a bit of time to undestand how to make it work…]
  • Image support for posts with automatic ASCII art conversion and display
  • Avatar management system with ASCII profile pictures
  • Different feeds (personal and global): Personal feed (showing posts from followed users) and Global feed (explore feed for “new” content)
  • Refactored admin command structure in ‘main.py’ (now through subcommands)
  • Rate-limit for posting posts
  • Minor internal refactors and bug fixes related to posts, profiles, and feeds
  • New commands: ‘feed’, ‘explore’, ‘postimg’, ‘posturl’, ‘avatar’, ‘avatarurl’, ‘removeavatar’

Next:

  • Add comments support for posts
  • Do an admin log/audit system
  • Allow users to become admins
  • Some kind of user verification features
  • General UI cleanup and improvements [it really doesn’t look great right now…]
Attachment
0
artur33

Added/Fixed:

  • ‘admin.py’ and ‘config.py’ (currently only used for default admin password)
  • Default Admin user creation
  • Admin management system and functionality: ban/unban users, delete posts, and basic admin dashboard
  • “User” table changes (to manage account banning, ecc.)
  • Improved session validation and user feedback on moderation actions
  • Profile command with full profile display functionality
  • Following/Followers lists support to view who a user is following/who follows the user
  • New commands: ‘profile’, ‘following’, ‘ban’, ‘unban’ and ‘admin_delete’
  • Modified command: followers -> modified logic (similar to ‘foolowing’ command)
  • Minor bugs fixed

Next:

  • Image posting with automatic transformation into ASCII art
  • ASCII profile pictures (same logic as the previus lol)
  • Improve the current home feed and split it into a ‘Home’ and an ‘Explore’ feed, I think
0
artur33

Note: Profile-related commands and features are not fully completed yet. Work on them was temporarily paused to write this devlog, since it’s been a long time since the last one.

Added:

  • Created social.py (for social related functions)
  • Profiles with all the information about the user: id, username, display_name, bio, status, location, website, created_at, followers_count, following_count and posts_count
  • Follow system: unfollow users and track followers (followers listing and count)
  • Refactored posts display logic to improve clarity
  • Moved ‘displayname’ func in social.py
  • Profile editing commands: bio, status, location, and website
  • Social commands: unfollow, followers
  • Fixed database calls for supporting the new behaviour

Next:

Finalize profile commands, adding admin user (and commands) and enhance user feed/home

0
artur33

Initially, I wanted to store likes directly in the ‘posts’ table, but while working, I realized it would be cleaner to separate tables…
Added:

  • Like system and tracking (+ related database changes): ‘like’, ‘unlike’ and ‘likes’ commands
  • ‘Follow’ command (needs to be finished by adding the unfollow and user profiles)
    And yeah, I need to finish the ‘follow system’ and make profiles
Attachment
0
artur33

Added:

  • Post management features (posts.py): create, delete, view posts and user feed;
  • ‘post’, ‘viewpost’, ‘deletepost’ and ‘myposts’ commands (and ‘home’ function modified);
  • ‘displayname’ command and functionality;
  • ‘validate_session’ function and integration;
  • ‘show_status’ function for ‘whoami’command.
    Fixed database table creation bug (caused by the timestamp).
    Will work now on the like and follow system…
Attachment
0
artur33
  • Improved feedback messages by adding custom prints functions;
  • Modified authentication system by adding session management (not fully complete);
  • Added banner and a raw ‘home’ command.
    Now I will FINALLY start working on posts and on the homepage ^^
Attachment
0
artur33

Refactored authentication and added “utils.py”.
Added: ‘changepassword’ command.
Improved feedback messages (because I want to make different types of print functions for errors, warnings, info, ecc.) -> I will work on this now.
I want to finally start working on the homepage and the postsss

Attachment
0
artur33

I modified the user authentication system:
User registration and login with validation and all the authentication system is now on a separated file “auth.py
Added:

  • Logout functionality
  • Account deletion
  • Whoami command
  • Enhanced command parsing in “main.py”
  • Close database connection on exit (hehe, I forgot to do it previously)
Attachment
0
artur33

Added first implementation of user registration and login functionality, everything works trough a SQLite3 database (I’m new at working with SQL-based databases)

Attachment
0