A sleep tracker app created with Next.js and Supabase.
-
You may visit the deployed app here:
lunatrak.vercel.app
-
Login/logout-based user authorization and authentication + Google OAuth integration
Users may register and log in accounts created from the app or with an existing Google account. -
Sleep record management
Users can add and delete sleep records that include durations with corresponding qualities (Excellent, Good, Average, Poor, and Terrible). - User dashboard
The app provides a dashboard that provides users information about their sleeping activity, such as average and best sleep times, sleep history, total sleep records, as well as trends based on their sleep duration hours. - 'Sleep Duration Trends' section
Sleep duration trends are sorted through the following categories: Optimal (7+ hours), Moderate (3-7 hours), and Low (<3 hours). - Responsive UI
Seamless experience in navigating throughout the app via desktop, tablet, and mobile layouts.
| Name | Details |
|---|---|
|
Supabase ( @supabase/supabase-js 2.89.0)
|
BaaS |
| PostgreSQL | Database |
| Google Auth Platform | Google account integration via OAuth |
|
Next.js 16.1.1 TypeScript 5.9.3 |
Front-end |
|
React 19.2.3 Tailwind CSS 4.1.18 react-chartjs-2 5.3.1
|
UI |
-
Ensure you have Node.js installed.
Download Node.js (Windows Installer):
Node.js — Download Node.js®
- You must have an account for the following services:
| Service | Reasons why it's needed |
|---|---|
|
Supabase
|
|
|
Google
|
|
|
Vercel
|
|
- Running the project locally
# Clone this repository
git clone https://github.com/andreiagbisit/lunatrak.git
# Navigate into the project root directory
cd lunatrak
# Install dependencies
npm install
# Start the app
npm run dev-
.env
NEXT_PUBLIC_SUPABASE_URL=[Supabase project URL]
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_DEFAULT_KEY=[Supabase project API key]