Your project is to build a dynamic web application that queries at least two APIs and presents useful and/or interesting information to the user. You will be using Node.js and Express, which will involve serving a static web page, creating JSON endpoints, and generating dynamic content through both server-side and client-side code.
Project Requirements
Core Requirements
- Server-Side Setup:
- Initialise a Node.js project using Express.
- Serve a static web page that will be the front end of your application.
- Static Web Page:
- Create an
index.html
file within a public directory.
- This page should include placeholders where dynamic content will be displayed.
- Creating JSON Endpoints:
- Implement routes in your Express server that respond to GET requests.
- These routes will fetch data from external APIs and return it in JSON format.
- Dynamic Content:
- Write client-side JavaScript that makes requests to your server-side endpoints.
- Dynamically update the static web page with the data received from these requests.
- Client-Server Interaction:
- Ensure that the server acts as an intermediary for API requests, handling data fetching and processing.
- The client-side script should handle the presentation of data, updating the user interface based on server responses.
Example structure
API mash-up application structure example
Stretch Goals
- Implement error handling in both server-side and client-side code to manage failed API requests or unavailable data.
- Implement tests
- Enhance the user interface with CSS and interactive elements for a better user experience.
- Introduce additional client-side interactivity, such as user inputs to filter or customise the data displayed.
Additional Considerations
- Ensure your application's design is responsive and accessible.
- Document the user journey and your application's functionality in a README file.
- Securely store any API keys or sensitive information required by your server.
Submission Guidelines