Dev Club Portal is a modern web application designed to manage and showcase a developer community. It provides features for member management, contribution tracking, leaderboard systems, and profile management.
- React 18: Core frontend framework
- TypeScript: For type-safe development
- TailwindCSS: Utility-first CSS framework for styling
- Lucide Icons: Modern icon library
- React Router: For client-side routing
- React Toastify: For toast notifications
- React Context API: For global state management
- Local Storage: For client-side data persistence
- Vite: Build tool and development server
- ESLint: Code linting
- Prettier: Code formatting
- Git: Version control
-
Authentication System
- Sign In/Sign Up functionality
- Role-based access control (User, Admin, Super Admin)
- Session management
-
User Management
- Profile creation and editing
- Avatar management
- Member directory
- Role management
-
DevCoins System
- Point tracking
- Contribution rewards
- Leaderboard integration
-
Admin Panel
- User management
- Contribution approval
- System monitoring
interface AuthState {
user: User | null;
loading: boolean;
error: string | null;
}
- Email-based authentication
- Secure password handling
- Persistent sessions
- Role-based routing
interface User {
id: string;
name: string;
email: string;
github: string;
linkedin?: string;
role: 'user' | 'admin' | 'super_admin';
avatar?: string;
devCoins: number;
}
- Custom profile pages
- Avatar customization
- Social media integration
- Activity tracking
interface Contribution {
id: string;
type: 'PR' | 'COLLAB' | 'EVENT' | 'OTHER';
description: string;
coins: number;
date: string;
verified: boolean;
}
- Point system for contributions
- Real-time leaderboard
- Contribution history
- Achievement tracking
- User management dashboard
- Contribution approval system
- Role assignment
- System statistics
-
Authentication Security
- Protected routes
- Session management
- Role-based access control
-
Data Security
- Client-side encryption
- Secure data storage
- Input validation
-
Error Handling
- Graceful error recovery
- User-friendly error messages
- Error logging
interface StorageSchema {
dev_club_users: User[];
dev_club_current_user: User | null;
}
- Context-based global state
- Component-level state
- Persistent storage
-
Navigation
- Responsive navbar
- Dynamic menu items
- User status indicator
-
Profile Components
- Profile editor
- Avatar manager
- Activity display
-
Admin Components
- User management interface
- Approval system
- Statistics dashboard
-
Common Components
- Loading states
- Error boundaries
- Toast notifications
- Primary: Indigo (#4F46E5)
- Secondary: Purple (#7C3AED)
- Accent: White (#FFFFFF)
- Background: Gray-50 (#F9FAFB)
- Font Family: Inter
- Headings: 2xl-4xl
- Body: sm-base
- Weights: 400, 500, 600, 700
- Rounded corners (rounded-md, rounded-lg)
- Consistent shadows
- Hover/active states
- Transitions
-
Code Splitting
- Route-based splitting
- Component lazy loading
- Dynamic imports
-
State Management
- Efficient context usage
- Memoization
- Local state optimization
-
Asset Optimization
- Image optimization
- Icon sprite sheets
- CSS purging
-
Enhanced Profile System
- File upload for avatars
- Custom themes
- Portfolio integration
-
Advanced Analytics
- Contribution analytics
- User engagement metrics
- Community insights
-
Integration Features
- GitHub API integration
- OAuth support
- External service webhooks
# Clone repository
git clone https://github.com/AryanVBW/Portal.git
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
signIn(data: SignInData): Promise<User>
signUp(data: SignUpData): Promise<User>
signOut(): Promise<void>
updateUserProfile(userId: string, data: Partial<User>): Promise<User>
updateUserRole(userId: string, role: UserRole): Promise<User>
getUsers(): User[]
addContribution(data: ContributionData): Promise<Contribution>
approveContribution(id: string): Promise<void>
getContributions(): Contribution[]
- Fork the repository
- Create a feature branch
- Commit changes
- Push to the branch
- Open a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Developer: Vivek W
- GitHub: @AryanVBW
- Email: [email protected]
Last Updated: January 6, 2025