This project is a Todo Management application, designed as a single-page app using React and TypeScript. It allows users to manage their todos efficiently, with features like adding, updating, deleting, and filtering tasks. The app is built to be scalable and maintainable, utilizing React's Context API for state management and the Fetch API for data handling.
- React: The application is developed using React with functional components for managing UI and logic.
- TypeScript: TypeScript is employed to ensure type safety and improve code quality across the project.
- Context API: React's Context API is used for global state management, providing a clean and scalable solution to handle application state.
- Fetch API: The app communicates with a backend service using the Fetch API to manage todos, with requests for getting, adding, updating, and deleting todos.
- SCSS: SCSS is used for styling, offering powerful features like variables, nesting, and mixins for a more maintainable CSS structure.
- Global State Management: The app uses Context API to manage the state of todos, filter options, and error messages across the application.
- Todo Operations: Users can add new todos, update existing ones, and delete todos they no longer need.
- Filtering: Todos can be filtered based on their status (all, active, or completed) to help users focus on specific tasks.
- Persistent Data: Todos are fetched from and stored on the server, ensuring that user data is persistent across sessions. Error Handling: The app includes error handling mechanisms to manage failed requests and display appropriate error messages to users.
- Clone the repository to your local machine using the command
git clone https://github.com/katya-sn/todos-tracker.git
. - Then, navigate to the project directory using cd todos-tracker.
- Make sure you have Node.js and npm installed, and install the project dependencies by running
npm install
. - After the dependencies are installed, start the development server with
npm start
. - Finally, open your browser and go to http://localhost:3000 to see the Landing running locally.