EvConn Laboratory is an integrated digital ecosystem designed for modern laboratory management, academic learning (LMS), and public engagement. It serves as the official digital presence for the EvConn Laboratory, bridging the gap between public information and internal academic operations.
The platform is built to:
- Public CMS: Showcase laboratory profile, programs, news, gallery, and the "Hall of Fame" (generational history).
- Academic LMS: Provide a robust Learning Management System for internal praktikum activities.
- Operational Workflow: Streamline assistant tasks, including group management, grading, and feedback analytics.
- Study Group: Offer public open-learning courses to a wider community of learners.
- History & Culture: Preserve the organizational legacy through a detailed generational archive.
- Framework: Next.js 16 (App Router, Turbopack)
- Language: TypeScript
- Styling: Tailwind CSS 4
- Database & ORM: PostgreSQL with Drizzle ORM
- Authentication: JWT-based session management with secure password hashing.
- Components: shadcn/ui
- Icons: Lucide React
- Animations: Framer Motion
- 3D Graphics: Three.js & Spline (for high-fidelity visuals)
- Aesthetics: Modern "Command Center" design with glassmorphism and premium dark modes.
The project is divided into four main domains:
- Public CMS: Landing page, laboratory profile, news updates, gallery, and programs.
- Academic LMS: Subject management, modules, assignments (MCQ & Essay/PDF), and grading systems.
- Operational & Organizational: Student group management, assistant role assignments, and feedback analytics.
- Study Group (Public LMS): Open courses accessible to registered guest users and the general public.
- Super Admin: Full platform control, user management, and system-wide analytics.
- Assistant: Manages assigned course offerings, modules, groups, and grading.
- Student (Internal): Teknik Komputer students enrolled via CSV; access to praktikum and learning materials.
- Guest Student: Public learners registered for Study Group courses.
evconn/
├── app/ # Next.js App Router (Pages, Layouts, API)
├── components/ # Reusable UI components
│ ├── lms/ # LMS-specific components
│ ├── navigation/ # Sidebar, Header, etc.
│ └── ui/ # Base shadcn/ui components
├── lib/ # Core logic and shared utilities
│ ├── actions/ # Server Actions (CRUD, Logic)
│ ├── auth/ # Session & Auth logic
│ ├── db/ # Database schema & Drizzle config
│ └── utils/ # Shared helper functions
├── public/ # Static assets (Images, Icons)
└── artifacts/ # System documentation and summaries
- Node.js 18.x or later
- PostgreSQL 15+ (Local or Docker)
- Clone the repository:
git clone https://github.com/your-org/evconn.git cd evconn - Install dependencies:
npm install
- Set up environment variables:
Create a
.env.localfile based on the example provided:DATABASE_URL="postgres://user:password@localhost:5432/evconn" JWT_SECRET="your-secret-key"
- Push database schema:
npx drizzle-kit push
- Run the development server:
npm run dev
npm run build
npm start- Multi-tenant LMS: Support for multiple course offerings per semester.
- Assigned Grading: Assistants only see and grade students in their assigned groups.
- MCQ Auto-grading: Instant results for multiple-choice assignments.
- Flexible Content: Support for PDF materials, video embeds, and external links.
- Three-way Feedback: Mandatory module feedback for assistants, sessions, and laboratory facilities.
- CSV Enrollment: Bulk-import students and map them to courses automatically.
- Hall of Fame: Visual history of laboratory generations and assistant roles.
This project is proprietary software belonging to EvConn Laboratory. All rights reserved.