Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .claude/settings.local.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,13 @@
"permissions": {
"allow": [
"WebFetch(domain:hexdocs.pm)",
"WebFetch(domain:github.com)"
"WebFetch(domain:github.com)",
"Bash(mix deps.get:*)",
"Bash(mix compile)",
"mcp__tidewave__project_eval",
"mcp__tidewave__get_logs",
"mcp__tidewave__list_liveview_pages",
"mcp__tidewave__execute_sql_query"
],
"deny": []
}
Expand Down
42 changes: 35 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,46 @@
# PulseVote

A real-time polling application built with Phoenix LiveView that allows users to create polls, vote, and see live results.

## Features

- **User Authentication**: Register and login with email/password
- **Poll Creation**: Create polls with multiple options
- **Real-time Voting**: Vote on polls with instant results updates
- **Vote Changing**: Change your vote after casting it
- **Live Results**: See voting results update in real-time across all connected users
- **Results Toggle**: Non-voters can preview results before voting
- **Responsive Design**: Clean, mobile-friendly interface using Tailwind CSS

## Getting Started

To start your Phoenix server:

* Run `mix setup` to install and setup dependencies
* Start Phoenix endpoint with `mix phx.server` or inside IEx with `iex -S mix phx.server`

Now you can visit [`localhost:4000`](http://localhost:4000) from your browser.

Ready to run in production? Please [check our deployment guides](https://hexdocs.pm/phoenix/deployment.html).
## Usage

## Learn more
1. **Create an Account**: Register with your email and password
2. **Create a Poll**: Click "New Poll" and add your question with at least 2 options
3. **Share and Vote**: Share the poll link with others to collect votes
4. **View Results**: See real-time results with vote counts and percentages
5. **Change Votes**: Users can change their vote at any time

* Official website: https://www.phoenixframework.org/
* Guides: https://hexdocs.pm/phoenix/overview.html
* Docs: https://hexdocs.pm/phoenix
* Forum: https://elixirforum.com/c/phoenix-forum
* Source: https://github.com/phoenixframework/phoenix
## Technology Stack

- **Phoenix Framework**: Web framework for Elixir
- **Phoenix LiveView**: Real-time, server-rendered UI
- **PostgreSQL**: Database for storing polls and votes
- **Tailwind CSS**: Utility-first CSS framework
- **Phoenix PubSub**: Real-time communication between users

## Database Schema

- **Users**: Email authentication with secure password hashing
- **Polls**: Title, description, embedded options with vote counts
- **Votes**: User votes linked to specific poll options

Ready to run in production? Please [check our deployment guides](https://hexdocs.pm/phoenix/deployment.html).
3 changes: 3 additions & 0 deletions config/test.exs
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
import Config

# Only in tests, remove the complexity from the password hashing algorithm
config :bcrypt_elixir, :log_rounds, 1

# Configure your database
#
# The MIX_TEST_PARTITION environment variable can be used
Expand Down
Loading