Giter Club home page Giter Club logo

backend-assessment's Introduction

Technical Assignment Brief

Overview

This technical assignment involves working with a GraphQL API deployed on AWS CDK Lambda functions. The API provides functionality for user registration and task management, backed by a PostgreSQL database and utilizing TypeORM for database interactions. The API is hosted at https://p3xyeb9kt4.execute-api.eu-north-1.amazonaws.com/prod.

What is required in this API?

  • Fetch Tasks and Users
  • Register Users
  • Create a task
  • Update a Task
  • Delete a Task
  • Find Task by Status

Technologies Used

AWS CDK Lambda Functions: The backend is deployed on AWS CDK Lambda functions, offering scalable serverless infrastructure.

PostgreSQL Database: The API uses a PostgreSQL database to persist user and task information.

TypeORM: TypeORM is employed for interacting with the PostgreSQL database, providing a powerful Object-Relational Mapping (ORM) solution.

GraphQL: API is build ontop of Graphql and apollo to query data.

Typescript and Javascript: Type safety is being utilized.

Queries and Mutations

Getting Started

How to run locally (optional)

run yarn inside once the repo is cloned ENV variables to note are found here run yarn dev to start the local server Once live you can test the apollo server port and start to play around with the graphql the mutations and queries are found in the Front End API Documentation and Guide

Testing

To run tests, you can just run

  npm run test

What am I testing?

  • hello world query that is deployed to the graphql server
  • testing the structure of the data coming back from graph QL, to ensure the format is as expected

NOTE:

ALL Requests to the Graph QL API should be a POST REQUEST, even the GET QUERIES Note, the Database is not fully optimised for 100% performance at this point. If you encounter an error when you make a request, please test that the server is still running by testing the hello query and then trying your request again., However all errors are being handled and sent to the user and logs for monitoring Errors are being handled accordingly

What is the Hello World Query ?

Testing hello Query using http client (Post man, thunderclient )

{
  "query": "{hello}"
}

Happy coding!

Serverless Approach Lamda Function

CDK Deployment LINK

backend-assessment's People

Contributors

fgiordi avatar

Watchers

 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.