Activity

jam06452

Added a basic frontend to this, as well as a CI/CD pipeline to make this into a OCI image for easy deployment. The frontend is currently vibecoded, I am going to pivot towards a human made interface soon since this is all Proof of Concept

Attachment
0
jam06452

Shipped this project!

I am reshipping for optimization sidequest

jam06452

Added POST APIs within phoenix to allow for a basic frontend to be made later on. I have further optimized and improved. idk wat photo since this is backend so yea

Attachment
0
jam06452

Migrated to elixir, a lot of performance gains, from a couple of seconds down to one for inference via chunking and running in parallel. idk what to do for the photo so idk. enjoy a photo of a bad gateway ig

Attachment
0
jam06452

I got a working PoC of the AI classifying model working. I have tested my self and the results are very accurate. It took me a while to find a model that was accurate since many are not. This does not work for code just yet. PS idk what to screen shot.

Attachment
0
jam06452

Added readme changes for optimization sidequest

Attachment
0
jam06452

Shipped this project!

Hours: 37.55
Cookies: 🍪 954
Multiplier: 25.41 cookies/hr

I built flavortown project database, I initially based it off of imdb. This project scraped the entirety of flavortown and stores it in a custom postgres database so it is incredibly fast and efficient. I used elixir & phoenix, this allows for near instant loading speeds. If it is slow it is more than likely your internet. I send the files in 150 microseconds. The images are loaded via flavortown instead of me scraping the actual images since I do NOT have enough space. The most challenging part of this is the scraping aspect as well as making a fast efficient interface. I am most proud of the impact this has had so far. Some flavortown admins have used this to search for projects etc since I have a search bar that they love.

jam06452

Testing & bug fixing live scraper alibaba-languished-rose

Attachment
0
jam06452

FINALLY, got a live scraper to scrape, /projects & /devlogs. This allows for liveish stats. These refresh every 30s.
Fixed missing devlogs & time affecting projects, I had to make another scraper to handle this by using /projects/{id} to grab the specific projects, and /devlogs/{id} for the specific missing devlogs. Hitting some rate limiting right now on the fix missing devlog scraper. Also made a TUI for my scraper to handle all my various scripts. Lots of messing around on my supabase to find devlogs, trouble shoot, make some RPCs etc. It was painful to say the least

Attachment
Attachment
0
jam06452

Features

  • Scrolling arrow buttons added, the old scroll bar was hard to see
  • Polish everywhere, same font used,
  • layout fixed since it looked weird in some places.
  • Fixed layout shift from project / user pages

Misc

  • Consolidated all CSS into a singular file to make it reusable. This in turn shrinks the codebase to make it more manageable and maintainable.

Changelog

Attachment
0
jam06452

Features

  • Added new way to view devlogs, looks a lot better now
  • Redone the logic behind the random devlgos & projects to utilize caching more effectivley

New Caching

It picks a random number from 1 to how many devlogs / projects
Takes that, puts it in to the cache,

Changelog

Attachment
0
jam06452

Added API Docs back based on the old openapi.yml but now hosted on scalar to make it look better than hosting it locally within FTPDB
Bugfix with if a project was deleted with a user, it would return nil which the frontend didn’t like, it now returns the projects

Attachment
0
jam06452

Shipped this project!

Hours: 44.36
Cookies: 🍪 1025
Multiplier: 29.21 cookies/hr

I added a page to view the messages in a nicer way instead of pure json to make it more readable.
I added a URL Expander in order to make the URLs bigger at the same speed by using my custom library I wrote in elixir
I am hoping the previous payout will be updated since it was unfair, you can tell by the comments that the voters did not read the devlogs.

jam06452

Features

  • Added styled page to show messages instead of pure JSON

  • Added URL_Expander, uses same logic as the shortener but uses my own random word library written in elixir to get a random string.

  • Automated github workflows for the new branch expander

  • General Styling and bug fixes

  • Bug Fixes

Changelog

Attachment
0
jam06452

Fixes

  • Project time now shows on random projects
  • Fixed devlogs not being shown due to linking issues in the supabase table

Features

  • Added devlog count on the main page

Changelog

Attachment
Attachment
0
jam06452

Fixed navbar, now consistent across all pages. Did some scraping scripts that were not recorded on hackatime cryin
Refreshed leader boards etc. Might ship soon

Attachment
0
jam06452

Shipped this project!

Hours: 13.08
Cookies: 🍪 321
Multiplier: 24.55 cookies/hr

I made a file uploader using a locally hosted S3 bucket. Cloudflare only allows 100MB uploads, I had to chunk the uploaded files into smaller chunks and then send them to my server. The server then resembles them and uploads them to the local S3 bucket. This allows me to have files of unlimited size to be uploaded. The server then gives the user a shortened URL using my previous project’s API to shrink the long url, the url leads the user to the file they can easily download or preview

The most challenging bit was chunking the files from the frontend and then streaming them back to the server. This was painful and challenging since I had not done this before.

I made this project entirely in elixir & Phoenix.

I am most proud of chunking the files in order to circumvent cloudflare limits, hard to implement but very rewarding.

jam06452

Added another node thanks to seraded stripes allowing for cross region backup. If u wanna help DM me :)

Attachment
0
jam06452

I know, I know, a 3 hour devlog

  • I will be honest I just forgot

We got some MASSIVE changes

  • Migrated 100% to garage
  • Custom SDK no heavy (AWS S3) SDKs
  • Fast
  • Unlimited file size depending on ur internet speed
  • Shortened URLs from previous project reported over with APIs
  • No CSS @Tom needs to do another PR
  • GH Workflow for publishing arm64 via selfhosted runner, GH hosted runner for x86/

Issues

  • Had many enospc errors, (server kept running out of memory and space)
  • Phoenix Liveview, had issues coordinating events in the correct sequence leading to crashing randomly
  • URL API was weird, sometimes nothing being returned, my fault with json bodies.

PS a lot of this was backend work dont complain it doesnt look “pretty”. It took a long time for all of this

Changelog

Attachment
Attachment
Attachment
0
jam06452

UI Addition & bug fixes with in it. Thanks to @Tom.

Custom SDK is underway

  • get_bucket_info(client, bucket) returns all bucket info in xml
  • get_object(client, bucket, file_name) returns the file contents
  • put_object(client, bucket, file_name, file_contents) uploads file to S3.

Added DB.ex

  • Test scripts

Env vars are secure

  • runtime.ex
config :fts3, :S3,
  base_url: System.get_env("S3_BASE_URL"),
  region: System.get_env("S3_REGION"),
  access_key_id: System.get_env("S3_ACCESS_KEY_ID"),
  secret_access_key: System.get_env("S3_SECRET_ACCESS_KEY")

Todo

  • Complete SDK
  • Simple UI of garage S3 branch
  • Docker workflows for garage etc

Changelog

Attachment
Attachment
0
jam06452

Finally got garage setup. Took me a while to do in docker, but I eventually moved to bare metal locally. Just tried a test upload to the API from another device to the domain. It Worked!.

Time to do more testing in python and then make an SDK in elixir

Attachment
Attachment
0
jam06452

Working PoC with any file size

Added working PoC.
Lots of work within supabase site including configuring buckets,testing etc.

Workflow

  • Upload file
  • File is sharded and uploading in chunks to bypass cloudflare limits
  • File is reassembled then uploaded to a local supabase S3 bucket
  • I make the address where the file will live, then take that address and pass it through my url shortener and return that instead.
  • When the link is followed, you are taken directly the file in supabase.

Features

  • Data & Time are appended to all uploaded files, this is to ensure files are not overwritten by other users.

  • Chunking to bypass CF limits

  • Custom bucket support, if I wanted to run two of these services on two different buckets I can change which bucket through env vars.

and more

To do

Get a better UI with more CSS

Changelog

Attachment
0
jam06452

I fixed a lot of issues and bugs. Reverted API docs, and changes to the backend DB.ex. Calling random projects as an RPS from supabase instead of getting “random” projects manually, this ensures that these are truely random, added a filter to ensure default banner projects are excluded since this are normally default starter projects which have no time or content. Redone projects structure to make it more suitable for more vertical screens. Formatting, redone some DB.ex structure. A lot of work of the supabase tables to make RPCs work correctly, supabase tables needed maintenance etc to ensure they are happy.

Attachment
0
jam06452

Added openAPI schema for @SeradedStripes
Fixed some carasel issues
Tidied up some stuff

Gotta improve how the openAPI is presented

  • Chores, OPENAPI docs, and fixes (3718655)
Attachment
0
jam06452

Added dockerfile for containeraztion
idk what image

Attachment
0
jam06452

Chores & Devlog page fix
Making devlog page nice next

  • Formatting & Random devlogs API (75dfac6)
  • /devlogs page for random devlogs (a0786c3)
Attachment
0
jam06452

Basic devlog page

Attachment
0
jam06452

Fixed scraping media URLs, was not fetching since I was using the incorrect API, i still dk what to do as images

Attachment
0
jam06452

Fix to homepage, refactor of functions under DB.ex, misc, project, user, devlogs reorder of functions for maintainability.

Consolidated frontend to use single CSS style document,

And more!
probably more caching

  • Added navbar being the same (a3b8294)
  • Consolidated frontend, all uses same CSS styling from one file (fa1912a)
  • Homepage fix (e20a8b7)
  • Refactor, misc, projects, users, devlogs (831f3b5)
  • Refactor, misc, projects, users, devlogs. Pt2 (0fe368a)
  • Homepage Fix and misc (ff89f47)
Attachment
0
jam06452

Fixed project page showing total user time instead of total project time

Attachment
2

Comments

SeradedStripes
SeradedStripes about 2 months ago

lowkey having flavorpheus spam me with these devlogs

jam06452
jam06452 about 2 months ago

havent done one for 5hours gng

jam06452

Added faster banner scraping by using 40 concurrent workers, I added the option to rescrape FT for banners not just for Null values in the database

Attachment
0
jam06452

Added a container that updates the database in realtime via the API

Idk what image to do

Attachment
0
jam06452

Chores & Features

Added /page/:d to show user stats when being searched
Added separate panel for searching for users

  • Fixed crash when nil was being divaded by 3600, fixed by making default 0 if no value fetched (e0bce39)
  • Added searching for people (4747ff2)
  • formatting (66349a4)
  • Search improvements (074f5e1)
  • Added /user/:id page for user stats & projects (8fe4f1c)
Attachment
0
jam06452

Added Cachex caching, this should significantly take off database load and speed up the site. idk what to do for the photo since it as all backend work

  • Implemented Caching with cachex (f83753b)
  • Fixed bug where when you clicked on a project it brought the user to the /project/:user_id (de490e9)
Attachment
0
jam06452

Added /projects to view projects in a grid view with shuffle to get random projects etc
More buttons everywhere
Slack fix

Be sure to use /suggestions for improvements

  • slack fix (6d374f0)
  • Added more buttons in project page (4c0cae6)
  • formatting (f3cfb3c)
  • Added a /projects page that shows random projects or those based off of filters (5383084)
Attachment
0
jam06452

Added suggestions, let me know what things you want now

  • Added suggestions page that messages me on slack with suggestons (1a76864)
Attachment
0
jam06452

Added searching with smart complete which takes into account hotness and total likes to correctly find what you are looking for

  • Carousel is now working properly with the dots (833f24e)
  • Added total likes in project viewer (7eae16c)
  • Formatting & Searching (d51140a)
Attachment
0
jam06452

Added native viewing for devlogs and projects within this. What should I add next?

  • Added profile pictures and display name (754d480)
  • Fixed forwarding to via user_id not project_id (ba2a975)
  • get_devlogs function (d66d9ce)
  • Renamed api.ex to DB.ex, more routes. (62a6fe1)
  • Added /project/:id path to show the project and devlogs locally (48d21dd)
Attachment
0
jam06452

Added banners & Profile pictures and names

  • Added banners to homepage (ff1e556)
Attachment
0
jam06452

Added basic frontend work with help from claude to get it done quickly.
I am working on getting project banners next
Added more API routes so we can see who has the most freetime

Attachment
0
jam06452

Added backend APIs for the frontend being built
/hot returns top ten projects determined by an algorith,
/top_this_week returns the top projects from this week
/fan_favourites returns most liked projects.

I am working on a frontend next using the PETAL stack.

ps, IDK what image to add since this is all backend

Attachment
0
jam06452

Scraped most of FT, some devlogs missing project IDs, the APIs are alr to work with but I will be releasing my own that are better. I do not have a frontend yet

Attachment
0
jam06452

Shipped this project!

Hours: 41.18
Cookies: 🍪 271
Multiplier: 6.59 cookies/hr

I made a complete URL Shortener from scratch and migrated from python to elixir. Very challenging at times since this is my first proper project using elixir.

jam06452

This project WAS removed before, this devlog contains all the prior devlogs, all 15 of them. Because of the 2000 character limit in flavortown the devlogs are in this file in my github repo:

https://github.com/jam06452/URL_Shortener/blob/main/devlogs.md

Attachment
4

Comments

vejas
vejas about 2 months ago

holy smokes, 41hrs on one devlog sob-ios

jam06452
jam06452 about 2 months ago

I couldnt do load of littles ones I tried so hard but i could only do the one devlog

tathya is aweomse
tathya is aweomse about 2 months ago

no way hes back

jyotikarmkar25
jyotikarmkar25 about 1 month ago

This is very nice and you did nice efforts