A modern Todo application built with Golang for the backend and React.js for the frontend. This app provides a clean and efficient way to manage tasks while following best practices in coding, testing, and deployment.
- User Authentication: Secure login and registration with JWT.
- Task Management: Create, read, update, and delete (CRUD) tasks easily.
- Responsive Design: Works on various devices and screen sizes.
- Comprehensive Testing: Unit and integration tests for both backend and frontend.
-
Backend:
- Go (Golang)
- Go-Chi (Routing)
- PostgreSQL (Database)
-
Frontend:
- React.js
- Axios (HTTP client)
- Jest (Testing)
To run this project locally, follow these steps:
Make sure you have the following installed:
- Go (1.20 or later)
- Node.js (18 or later)
- PostgreSQL (and a running database)
-
Clone the repository:
git clone https://github.com/V4T54L/todo-app.git cd todo-app
-
Backend Setup:
Navigate to the backend folder:
cd backend
- Install dependencies:
go mod tidy
-
Set up your PostgreSQL database and update your
.env
as needed. -
Run the Go application:
go run main.go
-
Frontend Setup:
Navigate back to the root directory and then to the frontend folder:
cd frontend
- Install dependencies:
npm install
- Run the React application:
npm start
To run tests for the backend, navigate to the backend
directory and use:
go test ./...
For the frontend tests, navigate to the frontend
directory and use:
npm test
This project includes automated deployment pipelines using GitHub Actions. Every push to the repository will trigger the deployment process.
Feel free to contribute by opening issues or submitting pull requests. Please ensure that your code follows the standard Go and React project structures and naming conventions.
This project is licensed under the MIT License. See the LICENSE file for more information.
- Thanks to the open-source community for their invaluable resources and libraries.
Happy coding!