Keep track of your habits!
Habit Tracker is a project developed for CS50's Introduction to Computer Science Course. It is a web application designed to help users track their habits. Users can create an account, authenticate using various methods, add, edit, and delete habits, mark habits as completed, failed, or skipped, visualize weekly performance, customize the app, toggle dark mode, choose different languages, and more.
git clone [repository_url]
cd directory_name
npm install
Set up Firebase:
Add Firebase configuration details to a .env.local file.
Start the application:
npm start
The app will be running at http://localhost:3000.
Habit Tracker is a feature-rich web application that allows users to track their habits effectively. With account creation, multiple authentication options, habit management functionalities, performance visualization, and customization features, it provides a comprehensive habit tracking solution. Built using modern technologies like React, Firebase, and Material UI, the project showcases the developer's skills and the ability to overcome challenges related to data structure and authentication implementation.
React is a widely used JavaScript library for building user interfaces and single-page applications. It follows a component-based architecture and uses a virtual DOM to efficiently update and render UI components
material-ui adds classes to Tailwind CSS for all common UI components. Classes like btn, card, etc. This allows us to focus on important things instead of making basic elements for every project.
Firebase offers a comprehensive set of features, including real-time database, authentication, hosting, cloud functions, storage, and more. Firebase provides an easy-to-use interface and allows developers to focus on building features rather than managing infrastructure.
React Hook Form is a performant, flexible, and extensible form library for React with easy validation. It reduces re-renders and improves performance by using uncontrolled components and native HTML validation, making form handling simple and efficient.
Yup is a schema builder for runtime value parsing and validation. It provides a declarative way to define validation schemas with support for complex nested objects, array validation, and custom validation rules. Often used with Formik for form validation.