A real-time polling system that allows users to create polls, share them via public links and view real-time results
- User Authentication System - Registration, login, logout, forgot password, email change, password reset, email verification and account deletion.
- Poll Creation - Create a poll with a question, options, expiration date and whether to make the result public or not.
- Poll Sharing - Share a poll via a public link.
- Real-Time results - View poll results in real-time.
- Poll Deletion - Delete polls.
-
Create a poll:
- Enter a question.
- Add options.
- Set expiration date.
- Choose whether to make the result public or not.
- Click on "Create Poll" button.
- Poll is created and you are redirected to the poll page.
-
Share a poll:
- Click on the share icon on the poll page to copy the link.
- Share the link with people you want to participate in the poll.
- People can access the poll by clicking on the link and can vote.
-
View poll results:
- Poll results are displayed in real-time.
-
Delete a poll:
- Click on the delete icon on the poll page to delete the poll.
-
User account management:
- Go to the settings page to change your account settings.
- Delete all your polls.
- Change your email.
- Change your password.
- Delete your account.
- Nuxt.js
- Tailwind CSS
- Pinia
- FingerprintJS
- ApexCharts
- Iconify
- FastAPI
- PostgreSQL
- Redis
- RabbitMQ
- Celery
- JWT
- Clone the repository
git clone https://github.com/XST-BD/RTPoll.git
- Navigate to the project directory
cd RTPoll
- Navigate to frontend directory:
cd frontend - Install dependencies:
pnpm install pnpm approve-builds
- Set up the environment variables in frontend/.env file:
API_URL="http://localhost:8000/api/v0" WS_URL="ws://localhost:8000/api/v0/ws" - Start the development server:
pnpm dev
- Open http://localhost:3000 in your browser.
For Production Build
- Build the application:
pnpm build
- Preview the production build locally:
pnpm preview
- Open http://localhost:3000 in your browser.
- Create backend/.env and use proper env variables.
- See docs/deployment.md for details
- Setup SSL certificates in nginx/certs/
cd nginx && mkdir -p certsopenssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout privkey.pem -out fullchain.pem
- Complete prerequisites
docker compose up -- build
This is a self-signed certificate, not for deployment For more details check docs/
- Atia Farha - Frontend Developer
- S.M Sadat - Backend Developer