A modern, collaborative project and team management application built on the Internet Computer (ICP) with Rust backend and Vue.js frontend, inspired by Jira and Trello workflow builders.
- User Management: Sign up, login, and profile management
- Team Management: Create, edit, and manage teams with privacy controls
- Project Management: Create projects owned by individuals or teams
- Role-Based Access Control: Owner, Manager, and Collaborator roles
- Invitation System: Invite users via links with role assignment
- Modern UI: Responsive design with Vue 3 and TailwindCSS
- Owner: Full permissions, can transfer ownership
- Manager: Can edit projects/teams and invite others
- Collaborator: Can use features but cannot manage teams/projects
- Public/private teams and projects
- Invite-only access control
- Role-based permissions
- Language: Rust
- Framework: DFX (Internet Computer SDK)
- Authentication: Internet Identity integration
- Storage: Canister stable memory
- Interface: Candid
- Framework: Vue 3 with Composition API
- Build Tool: Vite
- Styling: TailwindCSS
- State Management: Pinia
- Routing: Vue Router
- UI Components: Headless UI
kanban-app/
βββ src/
β βββ backend/ # Rust canister
β β βββ src/
β β β βββ lib.rs # Main canister logic
β β β βββ models/ # Data structures
β β β βββ handlers/ # Request handlers
β β β βββ utils/ # Utility functions
β β βββ kanban-app-backend.did # Candid interface
β βββ frontend/ # Vue.js application
β βββ src/
β β βββ components/ # Vue components
β β βββ views/ # Page components
β β βββ stores/ # Pinia stores
β β βββ router/ # Vue Router configuration
β β βββ utils/ # Utility functions
β βββ public/ # Static assets
βββ dfx.json # DFX configuration
βββ package.json # Frontend dependencies
-
Clone the repository
git clone <repository-url> cd kanban-app
-
Install frontend dependencies
cd src/frontend npm install -
Start local Internet Computer
dfx start --background- Deploy the canisters
dfx deploy
5. **Start the frontend development server**
```bash
cd src/frontend
npm run dev
-
Backend Development
- Edit Rust code in
src/backend/src/ - Update Candid interface in
src/backend/kanban-app-backend.did - Deploy with
dfx deploy backend
- Edit Rust code in
-
Frontend Development
- Edit Vue components in
src/frontend/src/ - Run
npm run devfor hot reload - Build with
npm run build
- Edit Vue components in
create_user(profile: UserProfile) -> Result<UserId, Error>get_user(user_id: UserId) -> Option<User>update_profile(user_id: UserId, profile: UserProfile) -> Result<(), Error>
create_team(name: String, description: String, is_public: bool) -> Result<TeamId, Error>get_team(team_id: TeamId) -> Option<Team>update_team(team_id: TeamId, updates: TeamUpdate) -> Result<(), Error>delete_team(team_id: TeamId) -> Result<(), Error>
create_project(name: String, description: String, owner: Owner) -> Result<ProjectId, Error>get_project(project_id: ProjectId) -> Option<Project>update_project(project_id: ProjectId, updates: ProjectUpdate) -> Result<(), Error>transfer_ownership(project_id: ProjectId, new_owner: Owner) -> Result<(), Error>
invite_user(target: InviteTarget, role: Role, expires_at: Option<Timestamp>) -> Result<InviteId, Error>accept_invite(invite_id: InviteId) -> Result<(), Error>remove_member(target: InviteTarget, user_id: UserId) -> Result<(), Error>
- Internet Identity Integration: Secure authentication via Internet Identity
- Role-Based Access Control: Granular permissions based on user roles
- Invite-Only Access: Private teams and projects require explicit invitations
- Ownership Transfer: Secure transfer of project/team ownership
- Responsive Design: Works on desktop, tablet, and mobile
- Dark/Light Mode: Toggle between themes
- Real-time Updates: Live collaboration features
- Drag & Drop: Intuitive project management interface
- Search & Filter: Easy navigation through projects and teams
- Basic user authentication
- Team and project creation
- Role-based access control
- Invitation system
- Kanban board implementation
- Task management
- File attachments
- Activity feed
- Advanced workflow automation
- Time tracking
- Reporting and analytics
- Mobile app
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: Check the inline code comments and this README
- Issues: Report bugs and feature requests via GitHub Issues
- Discussions: Join the community discussions for questions and ideas