A full-stack web application for managing collaborative organizations, project workflows, and token-based compensation systems. Built with React/TypeScript frontend and .NET Core Web API backend.
- Frontend: https://c-vx-mantine-ui-knwx.vercel.app/
- API: Hosted on Interserver.net
This platform enables organizations to manage collaborative projects with built-in governance workflows, milestone tracking, and token-based budget allocation. Users can create collaboratives, propose projects, assign milestones to team members, and track completion through multi-level approval processes.
- Network Level: Global user management and collaborative approvals
- Collaborative Level: Independent organizations with their own admins and token treasuries
- Project Level: Individual projects with milestone tracking and budget management
- Network Admin: Approve new users and collaborative proposals
- Collaborative Admin: Manage members, approve projects, oversee treasury
- Project Admin: Create milestones, assign tasks, approve completions
- Members: Accept invitations, complete assigned milestones
- Real-time balance calculations (never stored, always computed)
- Project admin compensation tracking
- Milestone token allocation with budget constraints
- Automated network transaction fees
- Member wallet tracking with transaction history
- User application approval (Network Admin)
- Collaborative proposal approval (Network Admin)
- CSA (Collaborative Services Agreement) signing and approval
- Project proposal approval (Collaborative Admin)
- Milestone completion approval (Project Admin)
- Multi-state lifecycle management (Draft β Active β Submitted β Approved/Declined β Archived)
- PDF viewer integration for CSA agreements
- Milestone artifact uploads
- Page-by-page reading tracking for legal documents
- Secure document storage and retrieval
- React 18 with TypeScript
- Mantine UI component library
- React Router for client-side routing
- Vite for build tooling
- Vercel for deployment
- .NET 8 Web API
- Entity Framework Core with SQL Server
- Interserver.net traditional hosting
- Cookie authentication with HTTP-only cookies
- GitHub Actions for CI/CD and backend health monitoring
- SQL Server database
- Interserver.net hosting with custom domain
Token balances and budget allocations are always calculated on-the-fly rather than stored in the database. This ensures:
- Single source of truth (no sync issues)
- Data integrity (impossible to have stale balances)
- Simplified business logic (one calculation method)
Example:
// Backend calculates on each request
launchTokenBalance = project.budget
- project.adminPay
- project.milestones.sum(m => m.allocatedLaunchTokens)
- networkTransactionFeesMilestones follow a strict state machine to prevent invalid transitions:
Draft β Assigned β Submitted β (Approved/Declined) β Archived
β________________|
(Resubmit on decline)
Dashboard uses 30-second polling to keep data fresh without WebSocket infrastructure:
useEffect(() => {
fetchDashboardData(); // Initial fetch
const pollInterval = setInterval(fetchDashboardData, 30000);
return () => clearInterval(pollInterval); // Cleanup on unmount
}, []);CVxMantineUI/
βββ src/
β βββ components/ # Reusable UI components
β β βββ Header/
β β βββ Navbar/
β β βββ ProtectedRoute.tsx
β β βββ ...
β βββ pages/ # Page components
β β βββ Auth/ # Login, registration, password reset
β β βββ Collaborative/ # Collaborative management pages
β β βββ Project/ # Project and milestone pages
β β βββ Dashboard.page.tsx
β βββ AuthContext.tsx # Authentication state and heartbeat
β βββ data.ts # TypeScript interfaces
β βββ Router.tsx # Route definitions
β βββ App.tsx # Root component
βββ api/ # Serverless functions (optional)
βββ .github/workflows/ # CI/CD and monitoring
β βββ keepalive.yml # Backend health check
βββ public/ # Static assets
- Node.js 18+ and npm
- .NET 8 SDK (for backend development)
- Hosting account (for deployment)
-
Clone the repository
git clone https://github.com/AlignedWorks/CVxMantineUI.git cd CVxMantineUI -
Install dependencies
npm install
-
Set up environment variables
Create a
.envfile in the root directory:VITE_API_BASE=https://your-backend-api.azurewebsites.net/api/
-
Run development server
npm run dev
The app will be available at
http://localhost:5173
The backend API repository is separate. Contact the repository owner for backend setup instructions.
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production build locallynpm run lint- Run ESLint
- User registers with email and personal information
- Network Admin approves user application (status: Applicant β Network Contributor)
- User logs in with credentials
- Backend sets HTTP-only cookie with session token
- Frontend stores basic user info in localStorage (not sensitive data)
- Client heartbeat pings backend every 30 minutes to keep session alive
- Backend validates cookie on every request
// Before creating a milestone, validate against available budget
const project = await fetchProject(projectId);
const totalAllocated = project.milestones.reduce(
(sum, m) => sum + m.allocatedLaunchTokens,
0
);
const remaining = project.budget - project.adminPay - totalAllocated;
if (milestoneTokens > remaining) {
throw new Error(`Insufficient budget: ${remaining} tokens available`);
}// Only project admin can approve submitted milestones
if (milestone.approvalStatus === 'Submitted' && user.isProjectAdmin) {
await approveMilestone(milestone.id);
// Status: Submitted β Archived
// Assignee receives token payout
}- Connect repository to Vercel
- Set environment variables in Vercel dashboard
- Deploy automatically on push to
master
- Publish .NET API to hosting provider
- Configure connection string for SQL Server database
- Set up custom domain and SSL certificate
GitHub Actions workflow pings backend every hour to keep the server warm:
# .github/workflows/keepalive.yml
on:
schedule:
- cron: '0 * * * *' # Every hour- Migrate to Next.js with Server Components and Server Actions
- Replace polling with WebSocket or Server-Sent Events for real-time updates
- Add comprehensive unit and integration tests (Jest + React Testing Library)
- Implement optimistic UI updates for better perceived performance
- Add email notifications for approval requests and status changes
- Create analytics dashboard for token flow visualization
- Implement audit logging for all state changes
- Add export functionality for transaction history (CSV/PDF)
- MIT
Jordon Byers
- GitHub: @AlignedWorks
- Website: jordonbyers.com
- Built with Mantine UI component library
- PDF viewing powered by PDF.js
- Frontend hosted on Vercel
- Backend hosted on Interserver.net