Streakx is a simple C-based habit tracker that helps students build consistent routines. It supports multiple users, daily check-ins, streak tracking, and a weekly report from the last 7 days. This project was made for the 1st semester C programming subject.
- User login and account creation stored locally
- Add, update, search, and delete habits
- Mark habits as done for today with streak updates
- Best streak tracking per habit
- Weekly report for the last 7 days
- Data stored per user in local .dat files
- C (standard library)
- File-based storage (binary .dat files)
From the project root:
gcc main.c habits.c tracker.c fileio.c -o streakx
./streakx- Run the program and log in (a new account is created if the username is not found).
- Use the menu to manage habits.
- Mark habits as done each day to build streaks.
- View the weekly report to see recent consistency.
- main.c - app entry, menus, program flow
- habits.c - habit CRUD operations
- tracker.c - date logic, streaks, reports
- fileio.c - user auth and file persistence
- habits.h - structs and function prototypes
The app stores data locally in the working directory:
- users.dat - usernames and passwords
- _habits.dat - habit records per user
- _logs.dat - completion logs per user
- This is a console application with fixed-size arrays.
- Data is stored in binary files; deleting those files resets data.
- No encryption is used for stored passwords (educational project only).
- Input validation and safer password storage
- Search by category and analytics dashboard
- Export reports to CSV
- Dynamic memory instead of fixed-size arrays