Resolvinator is a comprehensive system designed to manage content, projects, risks, resources, and attachments within a Phoenix application. It leverages behavior modules and
The application uses several behavior modules, each implemented as a macro using __using__/1
, to provide shared functionality:
Key Features:
- Common content fields (name, description, status, visibility, etc.)
- Embedded schemas for Voting and Moderation
- Self-referential relationships
- Description management
- Comment support
- Status workflow (draft → review → published → archived)
Key Features:
- Risk assessment fields
- Priority and status management
- Probability and impact tracking
- Metadata support
Key Features:
- Impact assessment
- Area categorization
- Severity and likelihood tracking
- Cost estimation
- Timeframe management
Key Features:
- Resource tracking
- Status management
- Category support
- Project association
- Metadata and notes
Key Features:
- File metadata management
- Polymorphic associations
- Content type validation
- Size tracking
Each content type has specific relationships:
- Problems → Solutions, Lessons, Advantages
- Solutions → Problems, Lessons, Advantages
- Lessons → Problems, Solutions, Advantages
- Advantages → Problems, Solutions, Lessons
- All behaviors require a
type_name
andtable_name
- Use of embedded schemas for complex attributes
- Consistent status workflows
- Metadata support across all types
- Project and creator associations
- Comment capability integration
Behaviors support extension through:
- Additional fields
- Custom relationships
- Embedded schemas
- Validation rules
All behaviors provide:
- Base changeset validation
- Required field validation
- Status management
- Relationship handling
- Metadata support
- Creator tracking
This architecture promotes code reuse and consistent behavior across different types of entities while maintaining flexibility for specific requirements.
To start your Phoenix server:
- Run
mix setup
to install and setup dependencies. - Start the Phoenix endpoint with
mix phx.server
or inside IEx withiex -S mix phx.server
.
Now you can visit localhost:4000
from your browser.
Ready to run in production? Please check our deployment guides.
- Official website: Phoenix Framework
- Guides: Phoenix Guides
- Docs: Phoenix Docs
- Forum: Elixir Forum
- Source: Phoenix GitHub