A backend project based on Golang and PostgreSQL that showcase CRUD operations using GraphQL. The application uses docker for containerization.
- Dependency Injection for modularity
- Pagination to reduce load
- Error handling for debugging
- Persistant storage using PostgreSQL
- Caching to improve performance
- Backend: Golang, GraphQL
- Database: PostgreSQL
- Cache: Redis
- Deployment: Github (Code Repository)
- Containerization: Docker
Make sure you have the Docker Desktop installed on your system:
git clone https://github.com/harshitrajsinha/go-get-job.git
cd go-get-jobCreate .env file in root directory
POSTGRES_USER=postgres
POSTGRES_PASSWORD=yourstrongpassword
POSTGRES_DB=yourfavouritedbname
DB_USER=postgres
DB_NAME=yourfavouritedbname
DB_PASS=yourstrongpassword
DB_PORT=5432
DB_HOST=db
APP_PORT=8000Run the following command in your bash terminal
docker-compose up --buildIn case you run into any problems while running docker-compose such as password authentication failure or role 'user' does not exists. Run the following commands
docker-compose down # remove existing container
docker volume rm go-get-job_db_data # remove stored data from <folder>_db_data
docker-compose up --build # rebuild the container with update

