Skip to content

mandeep-mahra/opinion-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Let's Vote - Opinion Platform

Live at : https://65e1bce2c7b51b0008509616--letsvote-opinion-platform.netlify.app/

This document provides an overview of the Let's Vote - Opinion Platform, a ReactJS and Firebase-based project.

Project Description

Let's Vote is an interactive online platform, akin to Facebook, where users can:

  • Post Polls: Create and share questions with multiple answer choices (options) for others to vote on.
  • Vote on Polls: Cast votes on polls posted by other users, expressing their opinions on presented topics.
  • View Live Opinion Graphs: Dynamically visualize real-time results of each poll through clear and informative graphs, allowing users to gauge collective sentiment and opinion distribution.

Technologies Used

  • Frontend: ReactJS
  • Backend: Firebase
  • Deployment: Netlify

Key Features

  • User Authentication: Ensure secure user accounts, login, and voting using Firebase Authentication.
  • Data Storage: Efficiently store poll data (questions, options, votes) in Firebase Realtime Database or Cloud Firestore for real-time updates and retrieval.
  • Real-Time Updates: Utilize Firebase Cloud Functions or Cloud Firestore Cloud Functions to trigger dynamic updates to opinion graphs upon new votes.
  • Security: Prioritize user privacy and data security through appropriate access controls and best practices for data handling and encryption.

Getting Started

  1. Clone the repository:
    git clone https://github.com/your-username/lets-vote.git
    

Install dependencies:

cd lets-vote
npm install

Set up Firebase:

Create a Firebase project in the Firebase console. Enable required services (Authentication, Realtime Database, or Cloud Firestore). Initialize Firebase in your application using the provided configuration. Run the application:

npm start

Project Structure

Copy code
lets-vote/
├── src/
│   ├── App.css      # Styles for the main application component
│   ├── App.js       # Main application component
│   ├── App.test.js  # Unit tests for App.js
│   ├── components/  # Reusable React components (e.g., Poll, PollForm, OpinionGraph)
│   ├── services/    # Services for data fetching, authentication, etc. (e.g., firebase.js)
│   ├── utils/       # Utility functions for data manipulation, formatting, etc.
│   ├── index.css    # Global styles
│   ├── index.js     # Entry point for the React application
│   └── pages/       # React components for specific routes/views (e.g., home.js, signup.js)
│           ├── home.js         # Component for the home page
│           ├── navbar.js       # Component for the navigation bar
│           ├── signup.js       # Component for user signup
│           ├── uploadPost.js   # Component for creating a new poll
│           └── votingCard.js   # Component for displaying a voting card
│   └── logo.svg       # Application logo
│   └── reportWebVitals.js  # Web vitals reporting code
├── public/              # Static assets (e.g., favicon, index.html)
│   └── ...
├── firebase.js          # Configuration and interaction with Firebase (outside of src for separation of concerns)
├── package.json         # Project dependencies and configuration
├── README.md            # Project documentation and instructions
└── .gitignore           # Files to exclude from version control

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published