Problem Statement : Vikram and Pavithra want to decide upon a design for Delta T Shirt. They decided to put up a poll among Delta members to select a design. So they asked their juniors to develop a portal which facilitates polling among teams. They need a website which allows creation of teams and polls within the team members built upon a full fledged frontend and backend.
- Download or clone this repo to your local system
- Install nodejs from Nodejs official website
- Open the terminal in the folder where you have cloned the project.
- Now run the following commands
npm install
- Now, you should be able to see the node modules folder with all dependencies installed.
- Install the mongodb community edition from here Mongodb official documentation
- Ensure that mongo service has started and is listening on port 27017 and also ensure that MongoDB in your device don't have any database in the name of 'polling-app'.
- Now , run the following command back in the terminal at the project folder
npm run dev
- Navigate to http://localhost:3000/login and you should be able to view the login page
- Make sure to be connected to the internet for loading icons and other online resources.
Normal mode:
- Have a user management system with authentication that allows users to register and login on the site
- Implement an authentication system to allow users to register on the site.
- Create a poll with variable number of text options within the team
- Create a dashboard for a team and display the polls in chronological order
- Show the results of poll after admin ends it
- Design a neat, intuitive UI ( make the site responsive, legible text, etc )
Hackermode:
- Have a deadline for automatically ending polls
- Notifications to the admin when someone submits a vote, joins their team using invite, etc
- Validate the registration forms (check for duplicate usernames, determine password strength, etc)
- Add plots/graphs to visualize results of polls
- Prevent SQL injection
Hacker++ mode:
- Ability to add multiple admins and user roles (like teachers, CR, students etc)
- Send notifications through email
- Google Calendar API integration to keep track of deadlines for polls