Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Datetime Server - Template #144

Open
xmonader opened this issue Jun 28, 2024 · 0 comments
Open

Datetime Server - Template #144

xmonader opened this issue Jun 28, 2024 · 0 comments
Labels
task New task

Comments

@xmonader
Copy link
Member

xmonader commented Jun 28, 2024

Create a basic HTTP server that returns the current date and time. Implement this server using multiple web frameworks, add tests, and containerize the application using Docker and Docker Compose.

Requirements:

  1. Server Functionality:

    • Endpoint: GET /datetime
    • Response: Current date and time
  2. Implementations:

    • Implement the server using:
      a. Standard library (net/http)
      b. Gin
  3. Testing:

    • Use Go's testing package and a HTTP testing library (e.g., httptest)
  4. Docker:

    • Create a Dockerfile for each framework implementation
    • Ensure each Docker image is optimized for size (Multistage builds)
  5. Docker Compose:

    • Create a docker-compose.yml file that runs all framework versions
    • Configure each service to run on a different port
  6. Documentation:

    • Provide a README with setup and running instructions
  7. Makefile driven: You should use make and a Makefile to drive the steps of

  • Building the binaries
  • Formatting
  • Linting
  • Building the images
  • Launching the containers

Optional Enhancements:

  • Implement graceful shutdown for each server

Acceptance Criteria:

  • All implementations pass the same test suite
  • Docker images build and run successfully
  • Docker Compose file correctly orchestrates all services
  • README provides clear instructions for running and testing the project
@SalmaElsoly SalmaElsoly mentioned this issue Jul 7, 2024
14 tasks
@Nabil-Salah Nabil-Salah mentioned this issue Jul 8, 2024
15 tasks
@samahdraz samahdraz mentioned this issue Aug 25, 2024
@AbdelrahmanElawady AbdelrahmanElawady added the task New task label Sep 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
task New task
Projects
None yet
Development

No branches or pull requests

2 participants