Skip to content

Repository files navigation

🧪 React Tech Quiz - CI/CD Pipeline Edition

GitHub repo size GitHub last commit GitHub top language GitHub issues Cypress Tests License


🚀 Live App

🔗 ci-cd-84b3.onrender.com


🧠 Overview

This is a React Tech Quiz app built with full CI/CD support using GitHub Actions and deployed seamlessly to Render. Users are presented with multiple-choice questions to test their knowledge, and the data is powered by MongoDB Atlas with server-side integration using Express + Mongoose.

All component logic is covered by Cypress Component Tests, triggered automatically via pull requests to develop.


🛠️ Tech Stack

  • Frontend: React + TypeScript + Vite
  • Backend: Node.js + Express + Mongoose
  • Database: MongoDB Atlas
  • CI/CD: GitHub Actions
  • Testing: Cypress Component Testing
  • Deployment: Render

🧪 Testing with Cypress

Tests are automatically triggered when a pull request is made to the develop branch:

on:
  pull_request:
	branches: [develop]

✅ Cypress Component Tests run on every PR
✅ Tests are visible in the GitHub Actions tab


🧬 Features

  • ✅ Randomized multiple-choice quiz questions
  • ✅ Full-stack architecture
  • ✅ MongoDB-powered dynamic data
  • ✅ Clean UI with responsive layout
  • ✅ CI/CD pipeline with automated test verification
  • ✅ Component tests using Cypress
  • ✅ Environment-secured with .env handling (and Git history cleaned up 💅)

🏁 Getting Started Locally

git clone https://github.com/OutsideofemiT/CI_CD.git
cd CI_CD
npm install
cd server && npm install
cd ../client && npm install

To run the dev server:

npm run dev

To run the build + server:

npm run build
npm start

To run tests:

npm run test:component

🔐 Environment Variables

Add the following to a .env file inside the server/ directory:

MONGODB_URI=mongodb+srv://<username>:<password>@<cluster>.mongodb.net/quiz_app_db
PORT=3001

Ensure your .env is included in .gitignore!


📸 Screenshots

Home Page Question Example
Start Quiz

👩🏽‍💻 Author

Carmen Wheeler
💬 Developer • Debugger • Design Enthusiast
📧 Email: outsideofemit@gmail.com
GitHub: @OutsideofemiT


🤖 README Generated By

This README was proudly crafted by ChatGPT — Carmen’s AI coding bestie and sidekick 💻✨
Generated on April 19, 2025


📄 License

This project is licensed under the MIT License.

About

Challenge 20

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages