Coder Social home page Coder Social logo

backend-challenge's Introduction

Sesam Backend Challenge

A small programming challenge for applicants for backend positions in Sesam.

Overview

This task is designed to test some general skills that are important for a backend/fullstack developer without being too time-consuming. Some of the things you encounter while working on this task: Git, GitHub, a JSON REST API, Python, Flask, Docker.

This challenge involves building a small API server and corresponding command-line client, both in Python, that allow uploading and processing JSON files, such as those included in the repo.

Setup

Fork this repository to your own GitHub account as a private repository (don't create pull requests to https://github.com/sesam-io/backend-challenge directly). Add @branislavjenco, @BaardBouvet and @grove as collaborators (you can do this when you are finished or right at the start).

Task

For this task we'll be building a very simple Python 3-based REST API server and command-line client.

API Server

The API server should have a single root endpoint, /datasets/, that allows list and CRUD operations over a dataset object via the following API / HTTP verbs:

  • GET /datasets/ - list the ids of the uploaded datasets and their corresponding file sizes
  • POST /datasets/ - creates a dataset. This endpoint takes a JSON file as input, and stores it somewhere/how on the server. A reference to this created object is returned by the endpoint, for instance an id or url.
  • GET /datasets/<id>/ - return the particular dataset
  • DELETE /datasets/<id>/ - delete the dataset object
  • GET /datasets/<id>/excel/ - export the dataset as an excel file

Client Library

The client app should be a fully standalone command-line python application. The app should provide command-line arguments that correspond and support each of the API actions above - how you structure the command line arguments and what you call them is left up to you.

Technologies

You may use any Python libraries and technologies of your choice, but we would like you to use Flask for serving the requests. We would also like you to build a Docker image for the API server and run it as a Docker container. It's up to you to use other Python development and packaging tools, like virtualenv and setuptools.

Notes

  • do not hesitate to ask us any questions
  • don't worry if you can't finish all aspects of the task - make notes on where you got stuck and why
  • it's all about conveying to us what your process was when tackling the challenge

backend-challenge's People

Contributors

branislavjenco avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.