Published on
Project Duration: Jan 31 2024 – Jun 12 2025

PollAnywhere



PollAnywhere is a full-stack polling web application designed for Informatics lectures, developed collaboratively as Team Marshall & Co.

The project provides a web-based platform for lecturers to create and host interactive questions while allowing students to participate through a browser. The system was developed as a collaborative software engineering project and evolved through a substantial development period, with 478 commits recorded in the repository before it was archived.


Live Demo → · GitHub Repository →


Overview

PollAnywhere was designed specifically around the requirements of interactive polling in university lectures.

The application separates the lecturer-facing and student-facing functionality into a web application backed by a server and database. This provides a complete workflow for creating and managing questions, hosting quizzes, collecting responses, and presenting results.

The repository describes the project as an interactive polling application for Informatics lecturers and confirms that it was developed using the MERN stack.


Full-Stack Architecture

The application follows a conventional MERN architecture, with responsibilities divided between the frontend, backend, and database.

Frontend: React Backend: Node.js and Express Database: MongoDB Frontend Hosting: Vercel Backend Hosting: Render

The production deployment separates the frontend and backend services, allowing each part of the application to be deployed independently.


Frontend

The frontend was built with React and provides the user-facing interface for the polling system.

The repository contains a dedicated frontend application alongside the backend, reflecting the separation between presentation and server-side functionality.

Development included work on lecturer and student-facing interfaces, responsive layouts, navigation, forms, quizzes, classrooms, results, and question management.

The commit history shows repeated work on responsive design and mobile layouts, including changes specifically intended to make forms and the interface work effectively on smaller screens.


Backend

The backend was implemented using Node.js and Express, providing the API layer used by the frontend.

The repository history shows development across multiple server-side components, including routes, controllers, models, authentication, classroom functionality, quiz functionality, and question management.

The backend and frontend were also separated into their own applications as the project architecture developed, supporting independent deployment of the two services.


MongoDB

MongoDB is used as the persistent database for the application.

The project models the data required to support its polling workflow, including users, questions, quizzes, classrooms, and related results.

The repository history shows the progressive introduction of database models such as the question model, quiz model, virtual classroom model, and question-bank functionality.

Lecturer Workflow

PollAnywhere is designed around the needs of lecturers running interactive sessions.

The application supports functionality for creating quizzes and questions, organising them into classrooms or question banks, hosting questions, and viewing submitted responses.

The repository history includes features such as:

  • Quiz creation
  • Question creation and editing
  • Question validation
  • Question banks
  • Classroom hosting
  • Quiz result viewing
  • Result graphs
  • QR-code functionality
  • Support for different question formats

These features were added incrementally throughout development.


Interactive Question Types

The project supports multiple styles of questions rather than limiting the platform to a single-choice polling workflow.

The repository history includes work involving multiple-choice questions, free-text questions, and WH-style questions, alongside functionality for handling and displaying their responses.

This required the frontend and backend to coordinate different question formats while still presenting their results through a common polling workflow.


Real-Time Classroom Interaction

A central concept within PollAnywhere is the idea of a lecturer hosting a classroom session while students connect as participants.

The repository contains dedicated classroom functionality and work around connecting and disconnecting clients, handling lecturer sessions, and managing hosted questions.

The project also introduced QR-code functionality, providing another mechanism for participants to access a hosted session.


Results and Visualisation

PollAnywhere includes functionality for presenting the results of hosted questions.

The development history shows work on charts, response graphs, result modals, and the ability for lecturers to view results associated with quizzes and classrooms.

This makes the polling workflow more useful than simply collecting answers: the lecturer can use the resulting data as part of the lecture itself.


Authentication and Access Control

The application includes user authentication and restrictions around accessing different areas of the platform.

The repository history contains work covering login and signup functionality, server-side validation, protected dashboard access, and handling cases where users are not authenticated.

This provides the foundation for differentiating between users and controlling access to lecturer-oriented functionality.


Testing

Testing became a significant part of the development process.

The repository contains numerous commits dedicated to creating and fixing tests for frontend components and backend functionality, including tests for question forms, quiz results, navigation, hosting, authentication, and other components.

This was particularly important for a collaborative application with a growing number of interconnected features, where changes to one area could easily affect another.


Responsive Design

The application was developed with responsive use in mind.

The repository history includes explicit changes to adapt login and signup forms to mobile screens, modify mobile layouts, adjust navigation, and refine CSS styling across the application.

This is particularly relevant to a lecture polling system, where participants may join using phones, tablets, or laptops.


Deployment

PollAnywhere was deployed as a split frontend/backend application.

The React frontend is deployed through Vercel, while the Node.js backend is deployed through Render, with MongoDB providing persistent storage.

The public repository also contains deployment-related work, including changes for connecting the frontend and backend and configuring access between the deployed services.


Collaborative Development

The project was developed by Team Marshall & Co:

  • Tanvir Sahota
  • Siqi Li
  • Sebastian Habram
  • Armaan Uddin
  • Omar Yahya
  • Harun Abukar
  • Saihan Marshall
  • Sujan Naik

The repository reflects contributions from all members of the team across frontend, backend, testing, deployment, and feature development.

This made PollAnywhere as much a software engineering collaboration exercise as a web-development project.


Development Process

The repository history demonstrates an iterative development process rather than a single implementation pass.

Development began with the initial frontend/backend project structure on January 31, 2024, followed by the gradual addition of server routes, models, quiz functionality, user authentication, testing, classroom functionality, responsive design, result visualisation, deployment configuration, and later maintenance work.

The final recorded commits on the main branch are dated June 12, 2025, providing the basis for the development period shown in this portfolio entry.


Technical Details

Architecture: MERN Frontend: React Backend: Node.js, Express Database: MongoDB Frontend Hosting: Vercel Backend Hosting: Render Application: Interactive lecture polling Features: Quizzes, questions, classrooms, authentication, results, charts, QR codes Testing: Frontend and backend automated tests Development: Collaborative team project


Project Status

PollAnywhere is now an archived project. GitHub records the repository as archived on December 1, 2025, making it read-only. The last recorded development activity on the main branch was on June 12, 2025.

The project remains a useful example of full-stack collaborative development, covering the complete path from application architecture and feature implementation through testing, deployment, and maintenance.


Development Period

January 31, 2024 – June 12, 2025

Collaborative software engineering project — Team Marshall & Co