Skip to main content

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 sure and give the action permission to write to repo or else you will get an error like this - remote: Permission to hassan-theitguy/update-data-test.git denied to github-actions[bot].

To avoid caching issues I tried the following in my javascript - const res = await fetch("data.json?v=" + Date.now());



I also asked ChatGPT the following - I have been doing some hobby coding. Things I have tested so far. Scraping a website for exchange rates and serving the data via my api. Emailing and sending the data via email and sms. Storing data in supabase and displaying it in a webpage. What else can I test out?

And the response - You’ve already covered a really solid “full loop” stack: data ingestion (scraping), processing, storage (Supabase), delivery (email/SMS), and presentation (web app). The natural next step is to start adding complexity in systems, not just more features.

Comments

Popular posts from this blog

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 =...