Table of Contents
Motivation: Contest.io is a comprehensive platform designed for hosting contests and facilitating voting. With its user-friendly interface and robust features, it offers a seamless experience for hosts, voters, and participants. The platform supports various types of contests, including photo, video, audio, and polls, allowing for versatile settings. Security and privacy are prioritized, with features such as contest visibility controls for hosts, enabling public or private contests, and participant management. Additionally, voters can maintain their anonymity while casting votes. As an entirely web-based platform, Contest.io brings together all users in a unified and seamless environment.
See Motivations slide for more details.
This project is developed as a full-stack web application, following the MERN (MongoDB, Express, React, Node) stack. The project also went through an extensive design phase, and class and Entity Relationship diagrams were formed. These can be found in this slide. Also, we designed the mock UI of the project in advance, a presentation on which can also be found here.
Developed for the "CSE408: Software Development" course.
This is an example of how to set up your project locally. To get a local copy up and running follow these simple example steps.
This is an example of list of things you need to use the software and how to install them.
node, react, express, mongoDB (can be online too, but can also be installed locally)- Clone the repo
git clone https://github.com/mrmajumder/contestIO.git
- Install NPM packages for the
frontend# move to frontend folder cd frontend npm install react-router-dom@6 npm install react-datepicker npm install axios #for icons (cd to frontend and then run these commands) npm i --save @fortawesome/fontawesome-svg-core npm install --save @fortawesome/free-solid-svg-icons npm install --save @fortawesome/react-fontawesome npm install --save @fortawesome/free-brands-svg-icons #for cookies npm i universal-cookie -s
- Install NPM packages for the
backend# move to backend folder cd backend npm install express cors mongoose dotenv npm install -g nodemon Set-ExecutionPolicy RemoteSigned #(in terminal as administrator) npm install multer npm install nanoid npm install path # for authentication npm i jsonwebtoken -s
- To run, go to frontend and backend folder consecutively and run
npm start
For connecting your own MongoDB database, do the following:
- first, add a new user to the
security>database accesstab in MongoDB Atlas - in the
.envfile, change theusernameandpasswordto your new user's username and password. - if connection closed error -> add
0.0.0.0/0to thesecurity>network accesstab of MongoDB Atlas
For connecting your own Firebase database, do the following:
- Go to the
frontenddirectorycd frontend/contestio/ - Add firebase with your own userid
uuidyarn add firebase uuid
- Install necessary NPM packages
npm install compressorjs npm install react-photo-view





