GoalTracker is a web application built with MERN (MongoDB, Express, React, and Node.js) stack. The main aim of the application is to help users set their own goals and maintain them.
- User authentication system (login and registration)
- User dashboard to manage goals
- Add, update and delete goals
- Goal progress tracking
- Responsive UI
- MongoDB: A NoSQL database used for data storage.
- Express: A flexible and minimalist web application framework used for building web applications.
- React: A front-end JavaScript library used for building user interfaces.
- Node.js: A JavaScript runtime environment used for building server-side applications.
- JWT (JSON Web Token): A secure and stateless method for transmitting information between parties as a JSON object. Can be used for various purposes where secure and reliable transmission of information is required, such as user authentication, SSO, secure APIs, and information exchange between different systems.
- Mongoose: An Object Data Modeling (ODM) library for MongoDB and Node.js that simplifies the process of defining data models and working with MongoDB in Node.js applications.
- Bcryptjs: A JavaScript library used for secure password hashing and comparison.
- Redux: A state management library for JavaScript applications that allows you to manage the state of your application in a predictable and scalable way.
- Styled Components: A CSS-in-JS library that allows you to write CSS code as JavaScript components to style React components.
- React Hook Form: A lightweight library for managing forms in React with an easy-to-use API.
- Yup: A validation library for JavaScript that offers a simple and declarative API for defining validation rules.
- Jest: A popular JavaScript testing framework developed by Facebook for testing JavaScript code with an emphasis on simplicity and ease of use.
- React Testing Library: A simple and lightweight testing utility for testing React components, designed to encourage good testing practices and avoid testing implementation details.
- Clone the repository
- Run `npm install` to install the dependencies
- Run `npm dev` to start the development server
Contributions are always welcome. If you find any bugs or issues, feel free to open an issue or submit a pull request.