No description
- HTML 44%
- CSS 26.3%
- Python 25.1%
- JavaScript 4.6%
| app | ||
| tests | ||
| app.py | ||
| CLAUDE.md | ||
| poetry.lock | ||
| pyproject.toml | ||
| README.md | ||
LongStoryDating
A conversation-first dating app that emphasizes expression and intentionality.
Features
- Rich, expressive profiles with up to 3,000 words or 15,000 characters
- Markdown formatting for structure and readability
- Photo and audio introduction support
- Message length requirements that scale with profile depth
- Location-based discovery with configurable radius
- Rate limiting to encourage thoughtful messaging
- Accessibility-first design (WCAG 2.1 compliant)
- Progressive enhancement with HTMX
Eventual features
- Matchmaking with AI based on analysis of profiles for similarity and compatibility between users. Matchmaking will be an external project.
Development
Prerequisites
- Python 3.9+
- Poetry
- PostgreSQL
- Redis
Setup
-
Install dependencies:
poetry install -
Set up environment variables:
cp .env.example .env # Edit .env with your configuration -
Initialize the database:
poetry run flask db upgrade -
Run the development server:
poetry run flask run --debug
Testing
Run the test suite:
poetry run pytest
Run with coverage:
poetry run pytest --cov=app --cov-report=html
Code Quality
Format code:
poetry run black app/ tests/
Lint code:
poetry run flake8 app/ tests/
Type checking:
poetry run mypy app/
Architecture
- Backend: Flask with SQLAlchemy and Redis
- Frontend: Jinja2 templates with HTMX for progressive enhancement
- Database: PostgreSQL for primary data, Redis for caching and rate limiting
- Testing: pytest with factory-boy and Playwright for E2E tests
License
GPLv3