A modern, professional portal application that helps employers manage their employee relationships, invoices, projects, and file sharing in one interface.
- Multi-Step Onboarding: Guided setup process for new users
- Role-Based Access: Choose between Client and Admin access types
- Profile Setup: Complete user profile with company information
- Secure Authentication: Firebase-powered user management
- Client Access: Submit project requests, track progress, manage invoices
- Admin Access: Manage all projects, clients, and platform settings
- Employer Access: Manage employees, projects, and invoices (default)
- Project Requests: Clients can submit detailed project requests
- Request Management: Admins can review, approve, or reject requests
- Project Tracking: Monitor project progress and status
- File Sharing: Secure file upload and sharing system
- Invoice Management: Create and track invoices
- Payment Tracking: Monitor payment status and revenue
- Budget Management: Track project budgets and expenses
- Dashboard Analytics: Real-time business metrics
- Project Analytics: Track project performance
- Financial Reports: Revenue and payment analytics
- Dashboard: Overview of clients, invoices, revenue, and recent activity
- Client Management: Add, edit, and manage client information with unique portal URLs
- Invoice Management: Create, track, and manage invoices with status tracking
- Project Management: Track project progress, timelines, and milestones
- File Sharing: Upload and share files with clients securely
- Settings: Profile management, billing, notifications, and security settings
- Client Portal: Password-protected access to project information
- Invoice Viewing: View and download invoices with payment status
- Project Updates: Track project progress and timelines
- File Access: Download shared files and project assets
- Professional Interface: Clean, modern design that reflects professionalism
- Frontend: React 18 + TypeScript
- Styling: Tailwind CSS
- Authentication: Firebase Auth
- Database: Firebase Firestore
- File Storage: Firebase Storage
- Build Tool: Vite
- Icons: Lucide React
- Forms: React Hook Form
- Notifications: React Hot Toast
- Routing: React Router DOM
-
Clone the repository
git clone <repository-url> cd shifter-client-portal
-
Install dependencies
npm install
-
Set up Firebase
- Create a new Firebase project at Firebase Console
- Enable Authentication (Email/Password)
- Enable Firestore Database
- Enable Storage
- Get your Firebase config and update
src/firebase/config.ts
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:3000
- Create a Firebase project
- Enable the following services:
- Authentication (Email/Password)
- Firestore Database
- Storage
- Update the Firebase configuration in
src/firebase/config.ts:
const firebaseConfig = {
apiKey: "your-api-key",
authDomain: "your-project.firebaseapp.com",
projectId: "your-project-id",
storageBucket: "your-project.appspot.com",
messagingSenderId: "your-sender-id",
appId: "your-app-id"
};Create a .env file in the root directory:
VITE_FIREBASE_API_KEY=your-api-key
VITE_FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your-project-id
VITE_FIREBASE_STORAGE_BUCKET=your-project.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=your-sender-id
VITE_FIREBASE_APP_ID=your-app-id- Sign up/Login: Create an account or sign in
- Complete Onboarding: Follow the guided setup process
- Choose Access Type: Select Client or Admin role
- Set Up Profile: Complete your profile information
- Start Using: Access role-specific features
- Submit Project Requests: Create detailed project requests with requirements
- Track Requests: Monitor the status of your project requests
- Manage Projects: View approved projects and track progress
- Access Files: Download project files and assets
- View Invoices: Check invoice status and payment information
- Review Requests: Manage incoming project requests
- Approve/Reject: Make decisions on project requests
- Manage Projects: Oversee all projects and clients
- Analytics: Access comprehensive business analytics
- Settings: Configure platform settings and permissions
- Add Clients: Go to Clients page and add your client information
- Create Invoices: Generate professional invoices for your clients
- Manage Projects: Track project progress and timelines
- Share Files: Upload and share project files with clients
- Share Portal URL: Send the unique portal URL to your clients
The application uses Tailwind CSS for styling. You can customize the design by modifying:
tailwind.config.js- Theme configurationsrc/index.css- Custom CSS classes- Component-specific styles
Update the following files to customize branding:
src/components/Sidebar.tsx- Logo and navigationsrc/components/Header.tsx- Header brandingindex.html- Page title and meta tags
npm run build- Install Firebase CLI:
npm install -g firebase-tools - Login:
firebase login - Initialize:
firebase init hosting - Deploy:
firebase deploy
- Install Vercel CLI:
npm i -g vercel - Deploy:
vercel
- Build the project:
npm run build - Upload the
distfolder to Netlify
The application is designed with a $5/month per client portal revenue model:
- Employers pay $5/month for each active employee portal
- Clients get free access to their dedicated portal
- Scalable pricing based on number of clients
- Firebase Authentication for secure user management
- Role-based access control
- Firestore security rules enforce onboarding completion and per-user data ownership
- Secure file uploads and downloads
- Client portal isolation
- HTTPS enforcement
- Real-time notifications
- Payment integration (Stripe)
- Time tracking
- Client messaging system
- Mobile app
- API for third-party integrations
- Advanced reporting and analytics
- Multi-language support
- White-label solutions
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Commit your changes:
git commit -am 'Add feature' - Push to the branch:
git push origin feature-name - Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue in the GitHub repository
- Email: support@shifter.com
- Documentation: docs.shifter.com
- Firebase for backend services
- Tailwind CSS for styling
- Lucide for icons
- React for the frontend framework