Skip to content

corquaid/the_space_quiz

Repository files navigation

The Space Quiz

A responsive website built with Next.js

Live

How I worked on this project

My goal was to simulate a professional development environment and gain experience with the Next.js framework.

  • This Next.js app was built based on previous "no-code" designs made on the Wix platform in 2020 before I started my web dev journey.
  • I built the codebase in a logical manner, using reusable components where possible and locally-scoped responsive CSS Modules for greater control.
  • Once the app was deployed to production on Vercel (as an MVP), further improvements are introduced via branches and Pull Requests.

Project Details

  • Stateful logic is handled through ContextAPI: Example code.
  • Responsive CSS using CSS Modules: Example code.
  • Material-UI components (Tooltip, Menu Drawer) are also used and customised through the makeStyles custom hook and the withStyles HOC APIs: Example code.
  • The application uses the getServerSideProps async function from Next.js to fetch data from both a MongoDB cluster and an Airtable integration. Examples for the request and data transformation Example code inside index.jsx
  • Integration tests using React Testing Library: [Link to example test on GitHub]

Why I built the project this way

  • I wanted to use Next.js for this project as an introduction to the framework, having worked mostly with React previously.
  • I chose not to use a more complex state management library such as Redux. Context was sufficient for the initial version of the app.
  • Module-style CSS allows separation of styling for individual components and pages.
  • I chose MongoDB to host the app data, also as a proper introduction to using this technology.

Ongoing work on this project (some new features, some housekeeping):

Functionality Changes

  • Implement Next.js image optimisation.
  • Migrate (at least partially) to TypeScript.
  • Add dark/light mode toggle switch.
  • Add social media sharing functionality to ScoreModal component.
  • Add "Go Back" button and required logic to QuizPanel component.
  • Add fix for nodemailer/gmail Production issue.
  • Introduce additional testing with Jest / Testing Library.

Refactoring / Housekeeping

  • Add Sitemap and robots.txt

  • Move HomePage hosted data from Airtable to MongoDB.

  • Add quiz question images to MongoDB documents where needed.

  • Optimise responsive design.

  • Add ScoreModal score range messages.

  • Set up continuous integration to run the tests and ESLint on every Pull Request

Available Scripts

First, run the development server:

npm run dev
# or
yarn dev

Open http://localhost:3000 with your browser to see the result. [List scripts to start or test the app here]

About

Built with Next.js. MongoDB and Material-UI.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy