This is a full-featured web application for creating, managing, and voting on polls. Built with Python and Django, it features a modern, interactive UI with a particle background and a light/dark theme switcher. The app is robust, secure, and user-friendly.
Users can register, vote once per poll, and view detailed results with charts and percentages. An admin panel is included for easy management of polls, questions, and choices.
- User Authentication: Secure registration, login, and logout.
- Poll Management: Admin panel for creating, updating, and deleting polls with multiple questions and choices.
- Voting System: Logged-in users can vote on active polls (one vote per user per poll).
- Results Visualization: Dynamic results page with total votes and percentage share for each option, displayed with numbers and animated doughnut charts (Chart.js).
- Modern Interactive UI:
- Animated particle background (Particles.js)
- Glassmorphism design for cards and navigation
- Theme switcher (light/dark mode)
- Bonus Features:
- "My Votes" section for users to see their voting history
- Export poll results as CSV
- Support for poll expiry dates
- Backend: Python, Django
- Database: SQLite 3 (local development)
- Frontend: HTML5, CSS3, JavaScript
- Styling: Bootstrap 5
- JavaScript Libraries: Chart.js, Particles.js
- Python 3.8 or higher
- pip
git clone <your-repository-url>
cd <repository-folder-name>python -m venv venv- On Windows:
venv\Scripts\activate
- On macOS/Linux:
source venv/bin/activate
pip install -r requirements.txtpython manage.py migratepython manage.py runserverOpen your browser and go to:
http://127.0.0.1:8000/
python manage.py createsuperuserFollow the prompts to set up your admin account.
- Go to: http://127.0.0.1:8000/admin/
- Log in with your superuser credentials.
- In the admin panel, click on "Polls" and then "Add poll".
- Fill in the poll's title and description.
- In the "Questions" section, add your questions.
- Click "Save and continue editing".
- Click on a question link to edit it.
- On the "Change question" page, add multiple choices for that question.
- Click "Save".
Your poll is now live and ready for registered users to vote!
Enjoy using the Django Poll System!