Loading...
Loading...
Loading...
Loading...
Your project is to build the backend for a dynamic web application that combines a quiz generator with data from multiple external APIs. This backend will serve as the foundation for a future full-stack application, showcasing your skills in server-side development, API integration, and data manipulation.
TypeScript Implementation::
The entire backend project must be written in TypeScript.
Utilize TypeScript's static typing for all modules, functions, and API interfaces.
Configure the TypeScript compiler (tsconfig.json) for the project's specific needs.
Server-Side Setup:
Initialize a Node.js project using Express.
Implement a RESTful API for quiz-related operations and external API interactions.
JSON Endpoints:
Create endpoints that fetch data from at least two external APIs and return it in JSON format.
Implement endpoints for quiz-related operations (e.g., get questions, submit answers, retrieve results).
Quiz Functionality:
Develop server-side logic to:
Generate quizzes with randomly selected questions based on a chosen subject area.
Process quiz answers and calculate results, including areas of strength and weakness.
Data Management:
Use a JSON object in a separate file as a mock database to store quiz questions.
Implement CRUD operations for managing quiz questions in this mock database.
External API Integration:
Integrate at least two external APIs to enhance the quiz experience or provide additional information related to quiz topics.
Implement proper error handling for failed API requests or unavailable data.
Implement more complex quiz generation algorithms (e.g., adaptive difficulty).
Add a favourite count feature for questions and allow filtering by this criterion.
Develop more sophisticated results analysis.
Implement caching mechanisms for external API calls to improve performance.
Create comprehensive API documentation using tools like Swagger.
Set up the basic structure of your Express server.
Implement a single endpoint that interacts with one external API.
Develop the full set of RESTful endpoints for quiz operations.
Integrate multiple external APIs.
Implement the quiz generation and results calculation logic.
Open AI API - https://platform.openai.com/
JokeAPI - https://jokeapi.dev/
The Dog API - https://thedogapi.com/
The Cat API - https://thecatapi.com/
Unsplash it - https://unsplash.it/
REST Countries API - https://restcountries.com/
UK Police API - https://data.police.uk/docs/
Postcode Lookup - https://postcodes.io/
Twitter API - https://developer.twitter.com/en/docs/twitter-api
Google Maps API - https://developers.google.com/maps
Spotify API - https://developer.spotify.com/documentation/web-api/
Giphy API - https://developers.giphy.com/docs/api/
GitHub API - https://docs.github.com/en/rest
The Movie DB API - https://developers.themoviedb.org/3/getting-started/introduction
The Guardian API - https://open-platform.theguardian.com/documentation/
News API - https://newsapi.org/docs/endpoints
TfL API - https://api.tfl.gov.uk/
Host your code in a Git repository with clear documentation.
Deploy your project on GitHub Pages. Feel free to deploy it elsewhere as well if you prefer and have the time.
Include a comprehensive README.md file detailing:
Project setup instructions
API endpoints and their usage
External APIs used and their purpose in the project
Any stretch goals implemented
Ensure your server is deployable, even though a full deployment isn't required at this stage.
Design your API with future frontend integration in mind. The frontend part of this project will be added next week.
Implement proper error handling and validation for incoming requests and external API responses.
Securely store any API keys or sensitive information required by your server.
Document your API structure and endpoints thoroughly for future development.
By completing this project, you will demonstrate your ability to create a robust backend application that combines original functionality with external data sources, showcasing your skills in API development, integration, and server-side logic implementation.
Please name your repo following this template: PRO03_BACK_Name1_Name2_Name3_Name4
A guide on setting up the tools for this weeks project. Good explanation on generating and modifying a TS config file
Good node tutorial demonstrating using json object as a mock database
A brief guide to the different ways you can deal with data in your server
Documentation on using Postman to make a collection of tests for api endpoints
Learn how to create a Discord chatbot using Node.js, integrate it with OpenAI's API, and implement testing for your bot.
Developer tooling. Repo name: Work15_DeveloperTooling_YourName Check resources
Building client-side apps with React. Repo name: Work16_React_YourName
Express server using Node
RESTful API development
External API integration and management
JSON data handling and mock database operations
Server-side logic for quiz generation and processing
Error handling and validation in API development
CRUD operations implementation
API documentation techniques
Asynchronous programming in JavaScript
Introduce learners to the concept of an ‘elevator pitch’