DEV Community

Cover image for Building a Prayer Tracker: My 100 Days of Code Journey
waqas
waqas

Posted on

Building a Prayer Tracker: My 100 Days of Code Journey

Building a Prayer Tracker: My 100 Days of Code Journey

Building a project while learning to code alone can be boring, and creating clones by watching YouTube tutorials didn’t help much. I tried a few times but didn’t learn a lot.

So what I decided

I decided to solve a real-world problem, starting with my own.

Motivation

I’m not very religious, and I find it challenging to pray five times a day consistently. I’ve tried several prayer-tracking apps, but most feel too basic they only offer a simple checklist to mark whether I’ve prayed. I want something more personalized, with gamified challenges, progress tracking, and a sense of community to keep me motivated and engaged

Requirements Gathering

Since I’m the originator of this idea, I started by creating a detailed requirements list. I divided the project into three phases to streamline development and follow an agile mindset. Each phase is further broken down into sprints, ensuring a structured and manageable approach to building the application.
## Phase 1

User Stories

  • As a user, I can mark my prayers as completed or missed.
  • As a user, I can see the history of my previous days.

Although these requirements may seem simple at first glance, their implementation involves more complexity than it appears. To address this, I’ve outlined detailed functional requirements to ensure clarity and proper execution.

  • The user should be able to create an account.
  • The user must have the ability to add prayers only during the designated prayer times.

  • Prayer timings must be aligned with the user's time zone, considering the different prayer times in various cities and countries.

  • There should be a feature to display user analytics on a calendar, allowing them to track progress and make improvements.

Tech Stack

Since I'm a JavaScript/TypeScript developer, for building APIs, I chose Nest.js. But why Nest.js and not Express.js? As a learner, using opinionated frameworks provides many benefits, such as project architecture, and industry-standard design patterns for implementing features, and it's easier to maintain the codebase and write clean, modular code. The list goes on and on. For the web front end, I chose React.js, and for the mobile app, I'll go with React Native.

Final Words

As I mentioned earlier, I am learning to code, so any suggestions, constructive feedback, or corrections will be highly appreciated. The main motive of writing here is to add a sense of accountability and to build in public, which will only be accomplished with your help. Thanks in advance for assisting me on my journey.

Top comments (0)