Skip to main content

Hobby project - Next experiments

This is ChatGPTs suggestions on what could be some next experiments.

1. Add a queue system for async job processing and retries

2. Automate scheduled scraping with cron-based GitHub Actions

3. Create notification rules/alerts for exchange rate thresholds

4. Add authentication with Supabase Auth or OAuth

5. Build an admin dashboard with logs and controls

6. Version your API endpoints (/v1, /v2)

7. Implement webhooks for outbound event notifications

8. Add rate limiting and API security protections

9. Experiment with serverless/edge functions

10. Add real-time updates using websockets or Supabase realtime

11. Build a small ETL pipeline for transforming scraped data

12. Add monitoring, logging, and failure alerts

13. Intentionally test failures and recovery handling

14. Compare JSON storage vs databases like SQLite/Postgres

15. Add analytics and metrics collection

16. Store historical exchange rate snapshots and graph trends

17. Add caching layers and cache invalidation strategies

18. Create a multi-user system with user preferences

19. Add file uploads/storage experiments

20. Build a mobile-friendly frontend or PWA

21. Test SMS/email batching and retry mechanisms

22. Add background workers for long-running tasks

23. Create API documentation and developer keys

24. Add search/filter functionality to stored datasets

25. Experiment with Docker/containerized deployments

26. Build backup and restore workflows

27. Add data validation and schema enforcement

28. Experiment with message brokers/event-driven architecture

29. Build a lightweight audit log/event sourcing system

30. Deploy the same system across multiple hosting platforms

Comments

Popular posts from this blog

Hobby project - Store and view exchange rates

The next step in my project was to test out being able store and display the rates in a database. I decided to use nodejs and supabase for this. Everything worked beautifully. Only hickup was the following error due to my package.json not being correct. SyntaxError: Cannot use import statement outside a module Added this to package.json   "type": "module" This works beautifully. Right now I am just testing fragments of what could be part of a bigger system to see what is possible and what works and how easy to code on a mobile. There is no fully functioning integrated end to end system just yet. This is also what I tested. A serverless append-only database using GitHub + Actions + Pages. That’s basically a lightweight backend system. This was the ChatGPT prompt I used. Guide me through each step. This is what I want. A manually run github actions that adds to docs/data.json with the current date and time. docs/index.html displays all the entries in data.json. Make s...

What is important

Every now and again, I get reminded of the why. Why I have handed my life over to God. It is 3:08 p.m. and I have decided to write. Honestly, I feel like I could end this blog post right here. What more is there to say? God above all else. God is our compass on this journey called life. Everything else can become a distraction. Maybe not everything, but certainly many things. You get the point. What is important? What do we prioritise? What do we make time for? The answers look different for everyone. Our lives are different. We are tested differently. We are all products of our circumstances, and those circumstances vary from person to person. Yet God is the common thread across humanity and throughout time. God always was and always will be. One day, we will answer to God. We will give account to God. We cannot live without food, water, and oxygen, but all of those things come from God. So how can we live without God? How timely. I just received a notification from the Quranly app: S...

Hobby project - Sending exchange rates via SMS

Continuing from last blog post , I was able to send an SMS to myself using twilio and nodejs. So now I have the capability to send email or sms with data scraped from a website and schedule this to happen daily for example. And I coded all this from my android phone using termux and vim. Pretty cool. Next up I want to be able to store the exchange rates in a database and display it on a webpage to show historical values. See results below This is my code require("dotenv").config(); const axios = require("axios"); const twilio = require("twilio"); const client = twilio(   process.env.TWILIO_ACCOUNT_SID,   process.env.TWILIO_AUTH_TOKEN ); async function sendUsdRate() {   try {     const response = await axios.get(       process.env.MY_API     );     // Get USD row     const usdRow = response.data.data.find(       row => row[0] === "United States Dollar"     );     const buyingRate =...