Open-source collaborative platform for academic management and student mutual assistance.
Note: This project is in early development (v0.0.1). Features and APIs may change. Not recommended for production use yet.
- Media Library - Document sharing organized by module
- Homework Manager - Deadline tracking with countdown and completion status
- Dynamic Calendar - Course scheduling and event management
- Activity Feed - Real-time class activity stream with filtering
- Live Chat - Instant messaging with module-specific channels
- Mutual Help System - Comments, reactions, and karma badges
# Clone repository
git clone https://github.com/ibousv/ClassSync.git
cd ClassSync
# Install dependencies
pnpm install
# Setup environment
cp .env.example .env
# Edit .env with your configuration
# Start database
docker-compose up -d
# Run development server
pnpm devAccess at http://localhost:3000
- Frontend - Lit Web Components, TypeScript
- Backend - Payload CMS 3.0, Next.js 15
- Database - PostgreSQL
- Real-time - Pusher
- Hosting - Vercel
classsync/
├── src/
│ ├── app/ # Next.js routes
│ ├── components/ # Lit Web Components
│ ├── payload/ # CMS collections and config
│ ├── lib/ # Utilities and helpers
│ └── types/ # TypeScript definitions
├── docs/ # Documentation
├── tests/ # Test suites
└── public/ # Static assets
- Architecture - System design and data model
- API Reference - REST and GraphQL endpoints
- Deployment - Production setup guide
- Contributing - Development guidelines
- Developer Guide - Extending with new features
- Component Guide - Building Lit components
- Extension Example - Complete feature implementation
- Users - Authentication with role-based access (student, delegate, admin)
- Modules - Course definitions with total hours (Java, PHP, C#, etc.)
- Resources - Course materials linked to modules
- Homework - Assignments with due dates and completion tracking
- Channels - Chat rooms for real-time communication
- Messages - Chat messages with live updates
- Comments - Feedback on resources and homework
- Reactions - Like, helpful, question reactions
| Role | Permissions |
|---|---|
| Admin | Full system access, user management |
| Delegate | Homework/module/channel management, moderation |
| Student | Create resources, comments, reactions, messages |
- Live chat with Pusher WebSocket
- Activity feed updates
- Reaction notifications
- Homework completion tracking
ClassSync is designed for easy extension. Developers can add:
// src/payload/collections/YourCollection.ts
export const YourCollection: CollectionConfig = {
slug: 'your-collection',
fields: [/* your fields */],
}// src/components/your-component.ts
@customElement('cs-your-component')
export class CsYourComponent extends LitElement {
// your component logic
}// src/app/api/your-route/route.ts
export async function GET(req: NextRequest) {
// your API logic
}See Developer Guide for detailed instructions.
- Node.js 18+
- PostgreSQL 14+
- pnpm 8+
pnpm dev # Start development server
pnpm build # Build for production
pnpm start # Start production server
pnpm lint # Run ESLint
pnpm format # Format code with Prettier
pnpm test # Run tests
pnpm type-check # TypeScript validationSee .env.example for required configuration.
Contributions welcome! Please read CONTRIBUTING.md for guidelines.
- Fork repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'feat: add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open Pull Request
Follow Conventional Commits:
feat: add new feature
fix: resolve bug
docs: update documentation
style: format code
refactor: restructure code
test: add tests
chore: maintenance tasks
MIT License - see LICENSE
- Report bugs via GitHub Issues
- Request features via GitHub Discussions
- Contribute via Pull Requests
Built to facilitate student collaboration and academic success.