It’s Christmas! This also means this is probably my final article in 2024. To close out the year, I’m proud to present the preview version of the Mahjong Score Calculator.
Visit the preview (and free) version of Mahjong Score Calculator here.
As mentioned before, the first milestone of the Mahjong Score Calculator was to deploy the simplest version deployed to the web so that everyone can access it. This marks the achievement of the goal I set last month:
- Answer my own question.
- Build something tangible after countless LeetCode challenges.
- Teach myself how to build an end-to-end app.
- Eliminate excuses, like not knowing front-end development.
- Most importantly have fun.
Since this is only the simplest version, there are still many items in the product backlog. I haven’t even named the web app properly and am simply calling it Mahjong Score Calculator!
Upcomings
First of all, two friends of mine asked me whether I would add a Chinese translation to the web app. Since Hong Kong Mahjong is primarily played by Hongkongers, it makes sense to include a Chinese translation. After all, no one knows Common Hand is the English name of 平糊.
Second, the web app currently lacks styling. As I’m new to front-end development, I know very little about styling. One of my upcoming tasks is to learn tools and frameworks like Tailwind CSS and Figma. I’m sure the web app will look better in the future.
In terms of functionality, the preview version only covers the Win from Wall condition, i.e., the entire hand remains concealed until the winning tile was drawn or stolen. This doesn’t cover exposed melds or other bonus conditions, such as Self-Pick and All Kongs. Without these factors, it cannot truly be considered as a complete calculator.
Moreover, the preview version lacks a user profile system. Users can’t save their preferences or view query histories. While this might seems like a nice-to-have feature, it’s actually my learning agenda – to embed the database into a web app.
On the technical side, while the frontend now benefits from the continuous deployment via AWS Amplify and GitHub, the backend still requires manual work for deployment. CI/CD is an area I had limited opportunities to learn and practise during my previous job, so this is a good chance for me to fill that.
Let me know you thought on the Mahjong Score Calculator. If you enjoy playing Mahjong but struggle with the rules, Faans calculation and recording the results, what would you most like the calculator to help with?
Developers’ Zone
If you are curious, here’s the current technical stack for the Mahjong Score Calculator:
- Backend
- Java 23
- Spring Boot 3.4
- Docker
- Frontend
- Next.JS 15
- Tailwind CSS
- AWS
- EC2: Backend
- Amplify: Frontend
- ACM: Certificate
- Route 53: DNS Management
Learning AWS is incredibly challenging. There are so many services offered to developers, each with is own pricing model. For beginners like me, it can feel overwhelming – a true Swiss army knife. As a solo developer and learner, I relied heavily on ChatGPT. However, its outdated responses weren’t always helpful. Googling often led to sparse or outdated information, which was frustrating.
After struggling with AWS and Spring Boot for several weeks, I decided to take a small break and document my learning journey. Perhaps I’ll write a series of “I wish someone had told me this earlier” articles.