A full-stack CRUD example application for managing books with authentication, featuring a Go backend API and React TypeScript frontend.
book-management-system/
├── backend/
│ ├── cmd/
│ ├── pkg/
│ ├── docker-compose.yml
│ └── README.md
├── frontend/
│ ├── src/
│ ├── package.json
│ └── README.md
└── README.md
- RESTful API with Go
- JWT Authentication
- PostgreSQL Database
- Redis Cache
- API Key Protection
- Rate Limiting
- Swagger Documentation
- React TypeScript UI
- Material Design
- Protected Routes
- CRUD Operations
- Form Validation
- Responsive Design
- Go 1.23+
- Node.js 14+
- Docker and Docker Compose
- PostgreSQL 13+
- Redis
- Clone the repository:
git clone https://github.com/LAA-Software-Engineering/crud-template-monorepo
cd crud-template-monorepo
- Start the backend:
cd backend
make setup
make build-docker
make up
- Start the frontend:
cd frontend
yarn install
yarn start
Create .env
file in /backend
:
POSTGRES_HOST=localhost
POSTGRES_DB=bookdb
POSTGRES_USER=postgres
POSTGRES_PASSWORD=your-password
POSTGRES_PORT=5432
JWT_SECRET=your-jwt-secret
API_SECRET_KEY=your-api-key
Create .env
file in /frontend
:
REACT_APP_API_URL=http://localhost:8001/api/v1
REACT_APP_API_KEY=your-api-key
Access Swagger documentation at:
http://localhost:8001/swagger/index.html
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
MIT
- Go Gin Framework
- React
- Material-UI
- And all other open-source libraries used in this project