DEV Community

Jana Sweity3
Jana Sweity3

Posted on

Building Denge in 4 Hours: A Multilingual Wellness Tracking App

By Joud Kattaa Shikhoni and Jana Sweity

Development time: 4 hours

Built with: Replit, React, TypeScript, Express, and PostgreSQL

Introduction

Can we build a functional wellness tracking application in just four hours?

That was the challenge behind Denge, a web application that brings nutrition, activity, hydration, sleep, and weight tracking into one place.

The name Denge means “balance” in Turkish. We chose it because our project focuses on everyday habits rather than a single measurement or an unrealistic definition of a healthy lifestyle.

During our four-hour development session, we worked on turning this idea into a working application with personal accounts, persistent records, and a multilingual interface.

This article shares what we planned to build, what we completed, the challenges we encountered, and what we would like to improve next.

The Problem We Wanted to Address

Wellness information is often scattered across different places. Someone might record their weight in a notebook, check their steps in another application, and forget how much water they drank during the day.

Our idea was to make this information easier to organize.

Instead of building an application that promises medical advice or automatic health improvements, we focused on a practical question:

How can we help users record their daily habits and review them in one clear interface?

What We Planned to Complete

With only four hours available, we needed a focused scope. Our main goals were to:

  • Create a clear dashboard showing a daily overview.
  • Allow users to record meals and review estimated nutritional information.
  • Support activity logging and manually entered step counts.
  • Track water intake, sleep, and weight history.
  • Let users set personal daily goals.
  • Add account creation and sign-in.
  • Save records in a database rather than keeping them only in the browser.
  • Make the interface usable on both desktop and mobile screens.

We also wanted Denge to feel approachable. The visual direction used cream, sage, and olive colors, with simple cards and straightforward navigation.

These goals gave us a concrete definition of a useful first version.

What We Completed

By the end of the four-hour build, we had a working version of Denge covering the main tracking features.

1. A Daily Dashboard

The dashboard brings the main daily information together, giving users a starting point for reviewing their records and progress toward their goals.

2. Nutrition and Meal Logging

Users can record meals and review estimated calories and nutritional values.

We made an important distinction here: nutritional values are estimates, not precise medical measurements. Denge supports tracking and awareness; it does not prescribe a diet.

3. Activity and Step Records

Users can log activity and enter their daily step count.

In the current version, steps are entered manually. We have not connected the application to phone sensors, fitness watches, or other wearable devices.

4. Water and Sleep Tracking

The application includes records for water intake and sleep duration, allowing users to track more than food and exercise alone.

5. Weight History and Personal Goals

Users can record weight measurements over time and configure personal targets for calories, steps, water, sleep, and weight.

These targets are chosen by the user rather than presented as medical recommendations.

6. Personal Accounts

Denge includes account creation, sign-in, and an account page showing the user’s name, email address, and optional age.

We chose to collect age in years rather than a complete date of birth because the current application does not need that extra information.

7. A Multilingual Interface

The interface supports Turkish, Arabic, and English, including right-to-left layout support for Arabic.

This helped us consider accessibility across languages, not only across screen sizes.

How We Built It

We developed the project using Replit, with the following stack:

Part of the Application Technology
User Interface React and TypeScript
Frontend Tooling Vite
Styling Tailwind CSS
Server-State Management TanStack Query
Backend API Node.js and Express
Database PostgreSQL
Database Access Drizzle ORM
Authentication Clerk
API Contract and Client Generation OpenAPI and Orval

The frontend communicates with the Express API, which reads and writes records in PostgreSQL.

For personal records, the backend uses the authenticated user’s identity to determine account ownership. It does not rely only on an account identifier supplied by the browser.

Using an OpenAPI contract also helped keep frontend requests and backend responses aligned.

Challenges We Encountered

Account Creation Was More Than a Sign-Up Form

One issue appeared during profile completion: saving the age succeeded, but saving the name failed because the authentication configuration rejected the native name update.

We resolved this by storing Denge’s display name in the appropriate user profile metadata and updating the places where the application reads that name.

This taught us to check the entire journey—not only whether an account was created, but also whether profile information was saved, displayed correctly, and still available after refreshing the page.

Translation Required Layout Changes

Supporting Arabic was not simply a matter of replacing Turkish or English text.

We also had to consider reading direction, alignment, longer labels, and mixed-direction content such as email addresses.

A translated interface is only useful if the layout remains comfortable to use.

A Four-Hour Limit Required Prioritization

The time limit encouraged us to focus on a functional core rather than attempt every possible feature.

We prioritized recording, saving, and displaying useful information. Features such as wearable integrations and advanced recommendations were outside the scope of this first version.

Completing a working prototype in four hours does not mean that every production concern is finished. Further testing and improvements remain important.

What We Want to Develop Next

Our next priorities are:

  • Editable account information: make it easier to update profile details.
  • Cross-device language preferences: remember the selected language across sessions and devices.
  • Data export and deletion: give users more control over their personal records.
  • Further privacy testing: continue checking that one account cannot access another account’s records.
  • Better input validation and feedback: make incorrect entries easier to identify and fix.
  • Optional fitness integrations: explore automatic activity tracking through supported services in a future version. These are planned improvements, not features we claim are already available.

What We Learned

The project showed us that building an application involves much more than creating attractive screens.

Authentication, database persistence, localization, and error handling all affect whether a feature works from the user’s perspective.

We also learned the value of being clear about limitations: manual step entry should be described as manual, nutritional estimates should be labeled as estimates, and planned features should be separated from completed ones.

Conclusion

In four hours, we built a functional first version of Denge that combines several daily wellness records in one application.

The result gives us a foundation to continue developing, while the experience helped us understand the importance of realistic scope, complete user journeys, and clear communication.

Denge is not a replacement for professional medical or nutritional advice. Its purpose is to help users organize their records and become more aware of their everyday habits.

Created by Joud Kattaa Shikhoni and Jana Sweity.

Source Code

Explore Denge on GitHub

Building Denge in four hours was a valuable lesson in prioritizing features, making technical decisions, and creating a multilingual user experience.

What would you improve or add to Denge next?

Top comments (0)