huddlz is a social networking platform focused on facilitating real-life meetups and events, prioritizing in-person connections over digital interactions. The platform aims to support tech meetup organizers and other community builders with tools for event management and attendee coordination.
Naming Convention: In huddlz, a singular event is called a "huddl" and multiple events are called "huddlz", matching the platform name. For branding purposes, we always use lowercase in UI and documentation.
- Huddl Listing - Discover upcoming discussion events directly on the landing page
- Search Functionality - Find huddls by keyword across titles and descriptions
- Password Authentication - Secure login with password reset functionality
Huddlz is under active development. The landing page with huddl listings has been implemented, providing immediate value to users visiting the site. Users can browse available huddls and search for events matching their interests without requiring authentication.
- Backend: Elixir with Phoenix Framework
- Frontend: Phoenix LiveView for interactive UI components
- Data Layer: Ash Framework for domain modeling
- Authentication: Ash Authentication with password-based login
- Database: PostgreSQL
- Testing: Cucumber/Gherkin for behavior-driven development
macOS:
brew bundle # or: brew install vipsUbuntu/Debian:
apt install libvips-devFedora:
dnf install vips-develThis project uses mise for version management:
mise installThis installs Elixir 1.19.5 (OTP 28) and Erlang 28.4 as specified in .mise.toml.
To start your Phoenix server:
- Run
mix setupto install and setup dependencies - Start Phoenix endpoint with
mix phx.serveror inside IEx withiex -S mix phx.server
Now you can visit localhost:4000 from your browser.
- Run all tests:
mix test - Run a specific test file:
mix test path/to/test_file.exs - Run Cucumber features:
mix test test/features/
- Format code:
mix format
- Commit Style Guidelines - Please follow these guidelines when contributing to this project
- This project follows behavior-driven development with Cucumber - see Testing Guidelines
- Vision - Project vision and goals
- Testing - Testing approach and guidelines
- Testing Approach - PhoenixTest patterns and best practices
- PhoenixTest Migration - Guide for migrating tests to PhoenixTest
- Development Lifecycle - Complete development workflow from requirements to implementation
The following environment variables must be set in production:
DATABASE_URL- PostgreSQL database connection stringSECRET_KEY_BASE- Secret key for session encryption (generate withmix phx.gen.secret)TOKEN_SIGNING_SECRET- Secret for signing authentication tokensSENDGRID_API_KEY- SendGrid API key for sending emails (required for password reset functionality)
RENDER_EXTERNAL_HOSTNAME- Hostname for the application (defaults to "huddlz.com")PORT- Port to bind to (defaults to 4000)POOL_SIZE- Database connection pool size (defaults to 10)
Ready to run in production? Please check the Phoenix deployment guides for detailed instructions.
Huddlz is licensed under the Business Source License 1.1 (BSL 1.1). This license:
- Allows you to freely use, modify, and distribute the software for non-commercial purposes
- Allows contributions to the project
- Restricts commercial use without a separate agreement
- Automatically converts to Apache License 2.0 5 years after the release of v1.0.0
- 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