Prasenjit-3433 / Rankr

A Real-Time Ranked Choice Voting App

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

Rankr

A Real-Time Ranked Based Choice Voting App
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Running the application
  3. Implementation
  4. Contributing
  5. License
  6. Contact
  7. Acknowledgments

🙋 About The Project

architecture

Introducing Ranker, the ultimate solution for making quick decisions among friends and indecisive groups! Ranker is not just your average voting app; it's a cutting-edge, real-time decision-making tool designed to streamline the process of ranking choices and gathering immediate feedback from all connected participants.

With Ranker, you can harness the power of real-time synchronization, ensuring that the data is instantly updated across all connected front-end client applications. Gone are the days of waiting for results or struggling to reach a consensus—Ranker makes the decision-making process seamless, efficient, and, most importantly, fun!

Whether you're trying to choose a restaurant for dinner, select a movie for movie night, or make any other group decision, Ranker empowers you to create ranked choice votes effortlessly. Simply create a vote, invite your friends or collaborators, and watch as the rankings evolve in real-time, giving you a clear view of everyone's preferences.

(back to top)

🛠 Built With

TypeScript Nest.js Redis JSON socket.io JWT React StoryBook Valtio wouter TailwindCSS Prettier ESLint Docker

(back to top)

🚀 Running the application

In order to run the application, you will need to have some prerequisite tools installed.

Prerequisites

First, you'll need to be able to run docker-compose command. If you are able to install Docker with Docker Desktop, that is probably the easiest solution.

Second, you'll need NodeJS for both the client and server applications. I recommend you use nvm or nvm-windows and make sure to use the same version of node found in the .nvmrc file at the root of the project. You can run nvm use from the root of the project to make sure you're using the same version of node as me.

With the everything installed and with Docker running on your machine, you can launch a docker container running redis-json, the backend Nest JS application, and the front-end react application by running the following from the root of the project.

Installation

npm run start

The project root's package.json file and its npm scripts are basically just for convenience of running all applications and a database at once.

You can also run these applications separately by running the appropriate npm scripts inside of each project's package.json file.

(back to top)

💎 Key Features of Ranker:

  • Real-Time Synchronization: Enjoy the benefits of instant data updates as all participants rank their choices simultaneously, ensuring that everyone's input is accounted for immediately.
  • Effortless Decision-Making: Say goodbye to endless debates and long discussions. Ranker's intuitive interface simplifies the process of ranking choices, making it quick and easy to reach a decision.
  • Customizable Voting: Tailor your votes to suit your specific needs, whether it's selecting multiple options, setting a time limit, or allowing participants to add their own choices.
  • Invite and Collaborate: Invite your friends, family, or colleagues to join your vote, allowing for group collaboration no matter where everyone is located.
  • User-Friendly Interface: Ranker boasts an elegant and user-friendly design that ensures a smooth and enjoyable decision-making experience.

No more indecision, no more waiting—Ranker is your go-to app for fast and efficient decision-making. Download Ranker today and revolutionize the way you and your friends make choices!

See the open issues for a full list of proposed features (and known issues).

(back to top)

🤝 Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

📜 License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

📮 Contact

Prasenjit Sutradhar - @twitter_handle - prasenjitsutradhar3433@gmail.com

Project Link: https://github.com/Prasenjit-3433/Rankr

(back to top)

✌️ Acknowledgments

(back to top)

About

A Real-Time Ranked Choice Voting App

License:MIT License


Languages

Language:TypeScript 93.3%Language:CSS 3.7%Language:JavaScript 2.7%Language:HTML 0.3%