Skip to content

Voterra is a dynamic web application designed to integrate polling into the core of social interactions. By enabling real-time voting and feedback on every post, Voterra fosters enhanced user engagement and community participation.

Notifications You must be signed in to change notification settings

ranimeshehata/Voterra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Voterra

Overview:

Voterra is a dynamic web application designed to integrate polling into the core of social interactions. By enabling real-time voting and feedback on every post, Voterra fosters enhanced user engagement and community participation. Users can express their opinions seamlessly while staying connected with others in the community.

Purpose:

The primary goal of Voterra is to create a platform where users can easily create and participate in polls, thereby promoting active involvement and interaction. This feature-rich application ensures that users have a voice and can contribute to discussions in a meaningful way.

Key Benefits:

  • Enhanced Interaction: By embedding polls in posts, Voterra encourages users to engage more actively with content.
  • Community Building: The platform supports a sense of community by allowing users to share their opinions and see the collective feedback.
  • User Empowerment: Voterra empowers users by giving them tools to create, vote, and interact with posts in real-time.

Getting Started:

To get started with Voterra, follow the setup instructions for both the frontend and backend applications. Ensure that all dependencies are installed and configured correctly to run the development and backend servers smoothly.

Table of Contents:

  1. Authors
  2. Features
  3. Frontend App Setup
  4. Backend App Setup
  5. Starting the Development Server
  6. Starting the Backend Server
  7. Database Setup
  8. Running Unit Tests
  9. Architecture
  10. Dependencies
  11. Contact Us

Authors:

Features:

  • Login and Sign Up: Users can create accounts and log in to access the platform.
  • User Authentication and Authorization: Secure authentication and authorization mechanisms to protect user data and ensure that only authorized users can access certain features.
  • Create Posts: Users can create posts with embedded polls.
  • Real-time Voting: Users can vote on polls in real-time.
  • User Profiles: Each user has a profile displaying their posts and activity.
  • Friend System: Users can add & remove friends and view their posts.
  • Search and Filter: Users can search for posts and filter them by category.
  • Report and Save Posts: Users can report inappropriate posts and save posts for later.
  • Privacy Settings: Users can adjust their privacy settings to control who can see their posts and profile.
  • Admin: Admins have access to a Reported Posts Page where they can manage posts and maintain Voterra.
  • Advanced Search: Users can perform advanced searches using multiple criteria.
  • Post Filtering: Users can filter posts by category.
  • Save Posts: Users can save posts to view them later.
  • Delete Posts: Users can delete their own posts.
  • Additional Pages: The application includes additional pages such as About and Contact for user assistance.

Frontend App Setup:

  • The frontend is built with React and Vite:
npm create vite@latest voterra --template react
cd frontend
npm install

Backend App Setup:

  • The backend is built with Node.js and Express:
cd backend-app
npm install
mvn install

Starting the Development Server:

  • After setting up, the development server can be started:
cd frontend-app/voterra
npm run dev

Starting the Backend Server:

  • To start the backend server, run:
mvn spring-boot:run

Database Setup:

  • The backend uses MongoDB as the database. Ensure MongoDB is installed and running on your machine. You can start MongoDB using:
mongod

Running Unit Tests:

  • Backend Testing: JUnit, Mockito
  • To run the unit tests for the backend, use the following command:
cd backend-app
mvn test

Architecture:

The Voterra application follows a modern web application architecture with a clear separation of concerns between the frontend and backend.

Frontend:

  • Framework: React
  • Build Tool: Vite
  • Styling: Tailwind CSS
  • Routing: React Router DOM

Backend:

  • Framework: Spring Boot (Java)
  • Database: MongoDB
  • ORM: Mongoose

Communication:

  • The frontend communicates with the backend via RESTful APIs.
  • The backend handles business logic, database interactions, and serves the API endpoints.

Dependencies:

  • The project uses the following dependencies:
    • React
    • React Router DOM
    • Tailwind CSS
    • ESLint
    • Vite
    • Spring Boot
    • MongoDB
    • JUnit
    • Mockito

For a complete list of dependencies, refer to the pom.xml and package.json files in the respective directories.

Contact Us:

If you have any questions or feedback, feel free to reach out to us at:

About

Voterra is a dynamic web application designed to integrate polling into the core of social interactions. By enabling real-time voting and feedback on every post, Voterra fosters enhanced user engagement and community participation.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published