Golang REST API with PostgresSQL and AWS Cognito
Budget: $50 – $350 CAD
Seeking an experienced Golang developer to create a RESTful API for an authentication system. The API will be built using the Go programming language and will utilize PostgreSQL as the database backend. The system will integrate with AWS Cognito for authentication services, ensuring a secure and scalable solution.
Key Requirements:
Language and Frameworks:
Primary language: Go (Golang)
Go framework: Gin (preferred for the performance and ease of use)
ORM: GORM for database interactions
Database:
PostgreSQL: Design and implement the database schema required for user management and authentication.
Authentication:
Integrate AWS Cognito for handling user authentication, registration, and password management.
Implement JWT (JSON Web Tokens) for secure communication between the client and the server.
REST API Standards:
Follow RESTful principles for API design, ensuring endpoints are logically structured and use appropriate HTTP methods (GET, POST, PUT, DELETE).
Implement proper status codes and error handling to provide clear feedback to the client.
Secure API endpoints using HTTPS and middleware for authentication and authorization.
Testing:
Write comprehensive unit and integration tests to cover all API endpoints and business logic.
Use testing frameworks such as Testify or GoConvey for writing and executing tests.
Documentation:
Provide detailed API documentation using tools like Swagger or Postman for easy understanding and integration by frontend developers or external consumers.
Version Control:
Use Git for version control and GitHub for repository hosting.
Deliverables:
Source code for the Golang API, following best practices in Go programming.
Database schema and migration scripts for PostgreSQL.
Comprehensive test suite covering all critical paths.
API documentation accessible via a web interface or as a downloadable document.
A deployment guide or script for setting up the API in a production environment.
Evaluation Criteria:
Adherence to project requirements and REST API standards.
Quality and readability of the code.
Performance and scalability of the API.
Coverage and effectiveness of the test suite.
Clarity and usefulness of the documentation.
Key Requirements:
Language and Frameworks:
Primary language: Go (Golang)
Go framework: Gin (preferred for the performance and ease of use)
ORM: GORM for database interactions
Database:
PostgreSQL: Design and implement the database schema required for user management and authentication.
Authentication:
Integrate AWS Cognito for handling user authentication, registration, and password management.
Implement JWT (JSON Web Tokens) for secure communication between the client and the server.
REST API Standards:
Follow RESTful principles for API design, ensuring endpoints are logically structured and use appropriate HTTP methods (GET, POST, PUT, DELETE).
Implement proper status codes and error handling to provide clear feedback to the client.
Secure API endpoints using HTTPS and middleware for authentication and authorization.
Testing:
Write comprehensive unit and integration tests to cover all API endpoints and business logic.
Use testing frameworks such as Testify or GoConvey for writing and executing tests.
Documentation:
Provide detailed API documentation using tools like Swagger or Postman for easy understanding and integration by frontend developers or external consumers.
Version Control:
Use Git for version control and GitHub for repository hosting.
Deliverables:
Source code for the Golang API, following best practices in Go programming.
Database schema and migration scripts for PostgreSQL.
Comprehensive test suite covering all critical paths.
API documentation accessible via a web interface or as a downloadable document.
A deployment guide or script for setting up the API in a production environment.
Evaluation Criteria:
Adherence to project requirements and REST API standards.
Quality and readability of the code.
Performance and scalability of the API.
Coverage and effectiveness of the test suite.
Clarity and usefulness of the documentation.