Skip to content

tomCollinson/homework-node-weather-api

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 

Repository files navigation

Weather Tracking API

Objective

Implement a NodeJS REST API for a weather tracking system with data persistence and integration with a third-party weather API.

You have total control over frameworks, tools, and libraries. Consider the Evaluation Criteria, but also try to have fun — this isn't a test of the right or wrong approach; it's about getting an understanding of your individual approach.

Requirements

  • Fork this repository.
  • Implement the following REST API endpoints:
    • POST /cities: Add a new city to track.
    • GET /cities: Retrieve a list of all tracked cities.
    • GET /cities/:id: Retrieve details of a specific city by ID.
    • PUT /cities/:id: Update details of a specific city by ID.
    • DELETE /cities/:id: Delete a city by ID.
    • GET /cities/:id/weather: Retrieve the current weather for a specific city by ID using a third-party weather API.
  • Persist city data using a datastore of your choice (can be in memory, or file-based if you like).
  • Fetch current weather information from a third-party weather API.
  • Write tests for the API endpoints.
  • Ensure the code is well-documented and follows best practices.
  • You do not need to worry about implementation of AuthN or AuthZ.
  • Extra ⭐️ for going the extra mile with test coverage.

Getting Started

  1. Fork this repository and complete the implementation.
  2. Submit a pull request with your completed project.

Evaluation Criteria

  • Conformance to business requirements
  • Code quality and organization
  • Proper use of modern development practices
  • Effective error handling and validation
  • Use of Git and commit messages
  • Documentation and clarity in the README

🚀 Happy coding!

About

A simple challenge to create a REST API with NodeJS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published