Habit Tracker Application designed to help users build and maintain healthy habits. Users can add, monitor, and track their daily habits, with the application providing a clear visual representation of their progress.
- Habit Management: Users can add, view, and track their habits, with visual indicators for completed tasks.
- Dynamic Emoji Association: Automatically assigns an appropriate emoji to each habit based on habit name.
- Monthly Progress View: Provides users with a detailed overview of their habit progress on a month-by-month basis.
- Responsive UI: Ensures an optimal experience across different devices.
The Habit Tracker application utilizes the following technologies and tools:
- HTML5: For the structure of the web pages.
- CSS3: For styling and layout of the application.
- JavaScript: For client-side scripting and interactivity.
- EJS: For templating and dynamic content rendering.
- Node.js: JavaScript runtime used for server-side development.
- Express.js: Web framework for handling HTTP requests and routing.
- MongoDB: NoSQL database used to store habit data.
- Mongoose: ODM (Object Data Modeling) library for MongoDB and Node.js.
- npm: Package manager for JavaScript, used for managing project dependencies.
- Git: Version control system for tracking changes and collaboration.
- Render: Cloud platform for deploying and hosting the application.
- dotenv: For managing environment variables.
- winston: For logging.
- express-ejs-layouts: For EJS layout management.
habit-tracker/
├── public/
│ ├── css/
│ │ └── styles.css
│ ├── images/
│ │ └── logo.png
│ └── js/
│ └── script.js
├── src/
│ ├── controllers/
│ │ └── habit.controller.js
│ ├── errors/
│ │ └── customError.js
│ ├── middlewares/
│ │ └── middleware.js
│ ├── models/
│ │ └── habit.model.js
│ ├── repositories/
│ │ └── habit.repository.js
│ ├── routes/
│ │ └── habit.routes.js
│ ├── utils/
│ │ └── errorLogger.js
│ └── views/
│ ├── layouts/
│ ├── partials/
│ ├── index.ejs
│ └── habits.ejs
├── .gitignore
├── .env.example
├── app.js
├── env.js
├── package-lock.json
├── package.json
├── package.json
├── README.md
└── server.js
To get started with the Habit Tracker project, follow these steps:
Make sure you have the following installed on your machine:
- npm
- Node.js
- MongoDB (Ensure you have a MongoDB server running locally or use a cloud MongoDB instance)
git clone https://github.com/guru-bandike/Habit-Tracker.git
cd Habit-Tracker
npm install
- Create a .env file in the root of the project by copying the provided .env.example file:
cp .env.example .env
- Open the .env file and replace the placeholder values with your actual environment settings.
npm run dev