Skip to content
Coding challenge
Go
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
api
apitest
cmd/zipapi
store
vendor
.gitignore
.travis.yml
LICENSE
README.md
go.mod
go.sum

README.md

zipapi

A small coding challenge project.

Travis CI: build status Coverage Status GoReportCard

zipapi is an HTTP(S) API that takes files uploaded to POST /archive as multipart/form-data into a zip archive and returns it as a response.

Roadmap

  • Required:
    • Upload of multiple files and creating a zip file out of them
    • Provide the zip file back to the API user
    • Serve multiple requesting clients at the same time
    • Limit the size of each uploaded file
  • Nice to have:
    • Provide automated API tests
    • CI
    • Retain a history of all created Zip files and their contents *
    • Expire created Zip files after a specific period of time **

* There's currently no database-backed persistency implementation but just a simple in-memory mock. Implementing one shouldn't be a problem though.

** This service shouldn't be responsible for this problem. There must be a separate service that periodically goes over the database and cleans up expired files.

Getting started

  • Download the latest release from releases
  • Compile /cmd/zipapi using go build
  • Define a configuration using /cmd/zipapi/config.toml as a template
  • Run the server using ./zipapi -config /path/to/config.toml providing the path to your configuration file.
You can’t perform that action at this time.