Crafo is a platform designed to streamline the management of collaborative workshops. It enables workshop creators to manage events, attendees, and photos, while participants can share their experiences, interact with others, and stay connected. Administrators oversee the entire platform to ensure smooth operation.
- Full control over users, workshops, and platform-wide resources.
- Manage roles and permissions.
- Access global platform statistics.
- Create, update, and archive workshops.
- Manage workshop descriptions with photos (1-5 images).
- Track attendees and send notifications to participants.
- Access workshop statistics, including attendee count, photos, and comments.
- Register for workshops and participate.
- Upload photos during workshops.
- Interact with photos via likes and comments.
- Receive notifications related to workshops they are attending.
- Frontend: Vue.js with Vuetify for UI components.
- Backend: Node.js (Express.js) for API.
- Database: PostgreSQL for relational data storage.
- Storage: Firebase for storing images and authentication.
- Containerization: Podman for managing containers.
- Documentation: OpenAPI for API specs.
Crafo/
├── backend/ # Node.js API
├── frontend/ # Vue.js application
├── db/ # Database scripts and migrations
├── docs/ # API documentation (OpenAPI YAML)
├── tests/ # Automated tests
├── README.md # Project documentation
└── .env.example # Environment variable template
git clone https://github.com/your-username/crafo.git cd crafo
- Copy the
.env.example
file and update the values as needed: cp .env.example .env
- Build and run the PostgreSQL container using Podman: cd db make rebuild-db
- Navigate to the backend directory and install dependencies: cd backend npm install npm start
- Navigate to the frontend directory and install dependencies: cd frontend npm install npm run serve
- Full API documentation is available in the
/docs
folder or online. - Example endpoints:
GET /workshops
: List all workshops.POST /workshops
: Create a new workshop (Creators/Admins only).POST /photos/{photo_id}/like
: Like a photo (Assistants only).
cd backend npm run test
cd frontend npm run test
Crafo is licensed under the MIT License. See LICENSE for details.
We welcome contributions! Follow these steps:
- Fork the repository.
- Create a feature branch:
git checkout -b feature-name
. - Commit your changes:
git commit -m "Add feature description"
. - Push the branch:
git push origin feature-name
. - Open a Pull Request.
If you discover a vulnerability, please email us at security@crafo.com
instead of raising an issue.
Crafo is proudly developed by a passionate team of developers dedicated to collaborative experiences.