{"id":23973238,"url":"https://github.com/bunyaminyavuz/clis","last_synced_at":"2026-03-02T10:30:53.889Z","repository":{"id":258145802,"uuid":"869479780","full_name":"BunyaminYavuz/CLIS","owner":"BunyaminYavuz","description":"The primary goal of CLIS (Computer Laboratory Information System) is to modernize and optimize the management of university computer laboratories through automation, real-time monitoring, and secure user access. By leveraging RFID and IoT technologies, CLIS transforms traditional manual processes into a streamlined digital workflow.","archived":false,"fork":false,"pushed_at":"2025-05-16T17:18:48.000Z","size":9546,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-07T19:56:29.338Z","etag":null,"topics":["admin-panel","computer-engineering","educational-project","educational-software","expressjs","information-systems","nodejs","operator-panel","raspberry-pi","rbac","rfid","student-panel"],"latest_commit_sha":null,"homepage":"https://clis.onrender.com/","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BunyaminYavuz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-08T11:18:40.000Z","updated_at":"2025-08-05T09:34:46.000Z","dependencies_parsed_at":"2024-10-17T20:49:39.323Z","dependency_job_id":"48f6debd-5585-49c6-b894-d7e8d7dce18f","html_url":"https://github.com/BunyaminYavuz/CLIS","commit_stats":null,"previous_names":["bunyaminyavuz/clis"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/BunyaminYavuz/CLIS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BunyaminYavuz%2FCLIS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BunyaminYavuz%2FCLIS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BunyaminYavuz%2FCLIS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BunyaminYavuz%2FCLIS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BunyaminYavuz","download_url":"https://codeload.github.com/BunyaminYavuz/CLIS/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BunyaminYavuz%2FCLIS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29998512,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T09:59:02.300Z","status":"ssl_error","status_checked_at":"2026-03-02T09:59:02.001Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["admin-panel","computer-engineering","educational-project","educational-software","expressjs","information-systems","nodejs","operator-panel","raspberry-pi","rbac","rfid","student-panel"],"created_at":"2025-01-07T04:48:03.007Z","updated_at":"2026-03-02T10:30:53.866Z","avatar_url":"https://github.com/BunyaminYavuz.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CLIS – Computer Laboratory Information System\n\nCLIS (Computer Laboratory Information System) is a comprehensive, IoT-powered platform engineered to digitize and streamline the access control and operational management of computer laboratories in educational institutions. Leveraging a robust combination of web technologies and embedded systems specifically RFID authentication integrated with Raspberry Pi hardware CLIS enables seamless, automated check-in/check-out processes, real-time monitoring of lab activity, dynamic computer assignments, and centralized administrative control. It is designed to enhance efficiency, accountability, and security while reducing manual workload and eliminating paper-based tracking systems.\n\n\n---\n\n## 🎯 Purpose\n\nThe primary goal of CLIS (Computer Laboratory Information System) is to modernize and optimize the management of university computer laboratories through automation, real-time monitoring, and secure user access. By leveraging RFID and IoT technologies, CLIS transforms traditional manual processes into a streamlined digital workflow.\n\nSpecifically, CLIS aims to:\n\n- ✅ Eliminate paper-based entry systems by automating student authentication via RFID card scans.\n- 📊 Enable real-time logging and tracking of student attendance and session activity.\n- 💻 Facilitate efficient computer assignment and resource allocation through an operator-managed dashboard.\n- 🧠 Provide administrators with centralized tools for user management, analytics, system configuration, and historical reporting.\n- 🔐 Enhance access control and security by enforcing role-based authorization.\n- ⚙️ Improve operational efficiency and transparency across lab environments.\n- 🌐 Lay the foundation for scalable, smart-campus infrastructure in educational institutions.\n\n\n---\n\n## 👥 User Roles and Responsibilities\n\nCLIS uses **Role-Based Access Control**. Each role has specific responsibilities and dashboard access:\n\n### 🎓 Students\n- Authenticate access to computer labs via RFID smart cards.\n- Track their personal lab attendance logs and session history.\n- Query real-time availability of lab resources through the web interface.\n- View operator schedules in advance and plan their lab visits accordingly.\n\n### 🧑‍💻 Operators\n- Oversee active lab environments with real-time occupancy dashboards.\n- Dynamically allocate or release computing resources to authorized users.\n- Manage workstation statuses by toggling between operational, maintenance, or fault states.\n- Validate and rectify anomalies in attendance or session logs.\n- Collaboratively create and manage their own lab duty schedules, ensuring proper staff availability and shift coverage.\n\n### 🛡️ Administrators\n- Centrally manage system users, including role-based account provisioning for students and operators.\n- Configure and maintain lab inventories, including adding, updating, or deprecating lab resources and machines.\n- Generate and export advanced analytical reports on attendance metrics, lab utilization, and system health.\n- Broadcast institutional or system-wide announcements to targeted user roles.\n- Monitor and audit all lab operations in real time with elevated access controls and administrative insights.\n\n---\n\n## 🧩 Features\n\n- 🔐 **RFID-based Authentication**\n- 📡 **Raspberry Pi Integration**\n- 🖥️ **Real-time Lab Monitoring**\n- 👥 **Multi-role Web Dashboard (Student, Operator, Admin)**\n- 💾 **MongoDB Cloud Database**\n- 📊 **Detailed Usage Reports**\n- 🧠 **Operator Scheduling**\n- 🚦 **Computer Status Management**\n- 🔒 **Data Encryption and Role Authorization**\n- 🌍 **Scalable and User-Friendly Design**\n- 🎇 **Others...**\n\n---\n\n## 🧠 System Design \u0026 Architecture\n\nThis section outlines the core design components of the CLIS system, including user interaction, system structure, data modeling, and hardware communication.\n\n\n### 🧱 System Architecture\nProvides an overview of software, hardware, and communication layers.\n\n![System Architecture](./public/images/screenshots/systemArchitecture.png)\n\n\n---\n\n### 📌 Use Case Diagram\nIllustrates the interaction between system users and functionalities.\n\n![Use Case Diagram](./public/images/screenshots/usecase.png)\n\n\n---\n\n### 🧩 Data Model(Class Diagram)\nDescribes the relationship between entities in the database.\n\n![ER Diagram](./public/images/screenshots/dataModel.png)\n\n---\n\n### 📡 Raspberry Pi – RFID\nDemonstrates the real-time interaction between RFID reader, Raspberry Pi, and backend API.\n\n![Raspberry Pi – RFID](./public/images/screenshots/rpi_rfid.png)\n\n---\n\n\n## 🧰 Technology Stack\n\n### 🔙 Backend \u0026 API\n- **Node.js** – Event-driven JavaScript runtime environment powering the backend.\n- **Express.js** – Minimalist web framework for building fast and scalable RESTful APIs.\n- **Mongoose** – Elegant MongoDB object modeling for Node.js.\n\n### 🗄️ Database\n- **MongoDB (Cloud / Local)** – NoSQL document database designed for high availability and scalability.\n- **MongoDB Atlas** – Fully managed cloud database service used for production deployment.\n- **dotenv** – Manages environment variables securely for configuration management.\n\n### 🖥️ Frontend\n- **EJS (Embedded JavaScript Templates)** – Templating engine for generating HTML markup with plain JavaScript.\n- **HTML5 \u0026 CSS3** – For structuring and styling responsive user interfaces.\n- **JavaScript (ES6+)** – Client-side scripting for dynamic content updates.\n- **Bootstrap 5** – Responsive CSS framework used to create clean, mobile-first UI components and layouts.\n\n### 💡 IoT \u0026 Hardware Integration\n- **Raspberry Pi** – Acts as the hardware bridge for RFID scanning and server communication.\n- **RC522 RFID Reader** – Reads RFID card UIDs via SPI interface.\n- **Python 3** – Scripting language used for handling RFID scans and sending HTTP requests to the backend.\n- **GPIO \u0026 SPI** – Communication protocols on Raspberry Pi for hardware interfacing.\n\n### 🔐 Security \u0026 Authorization\n- **Role-Based Access Control (RBAC)** – Differentiated access levels for Students, Operators, and Admins.\n- **JWT / Session Authentication** – (Optional extension) Secure authentication token handling.\n- **Data Encryption (at rest \u0026 in transit)** – Ensuring privacy and compliance with data protection standards (KVKK/GDPR).\n\n### 🔧 Tools \u0026 Utilities\n- **nodemon** – Automatically restarts the Node.js server during development.\n- **Postman** – API testing and debugging during backend development.\n- **VS Code** – Primary code editor used in the development process.\n- **Git + GitHub** – Version control and collaboration.\n\n### 📊 Reporting \u0026 Monitoring *(Planned/Optional)*\n- **Chart.js / D3.js** – Data visualization for admin reporting panels.\n- **Socket.io** – Real-time bi-directional communication for live dashboard updates.\n- **Cron Jobs / Node Schedule** – Task automation for periodic data cleanup or reminders.\n\n\n---\n\n## 🖼️ Sample Screenshots\n\n### ADMIN\n![Admin Dashboard](./public/images/screenshots/admin_dashboard.png)\n\n### OPERATOR\n![Operator Dashboard](./public/images/screenshots/operator_dashboard.png)\n\n### STUDENT\n![Student Dashboard](./public/images/screenshots/student_dashboard.png)\n\n---\n\n\n---\n\n## 📚 Project Background\n\nThis project was developed as a final year thesis for the Computer Engineering Department at Alanya Alaaddin Keykubat University.\n\n\u003e [View Thesis Document (PDF)](./docs/ALKU_CLIS_Thesis.pdf)\n\n---\n\n## 🔮 Future Enhancements\n\n- **Cross-Platform Mobile Application**  \n  Develop a native or hybrid mobile app (using Flutter or React Native) to provide real-time notifications, lab schedules, and self check-in/out capabilities.\n\n- **Advanced UX/UI Revamp**  \n  Redesign the user interface with modern design systems (e.g., Bootstrap 5, Material Design) for enhanced accessibility, responsiveness, and user satisfaction.\n\n- **Peripheral System Integration**  \n  Extend the system to manage additional lab resources such as smart lockers, 3D printers, and shared peripherals via modular APIs and GPIO extensions.\n\n- **Face Recognition-Based Authentication (Optional Mode)**  \n  Integrate a privacy-compliant facial recognition system as an alternative or secondary authentication method using OpenCV or cloud-based vision APIs. Ideal for environments requiring elevated security, this mode would support dual-authentication along with RFID or for entry-only terminals.\n\n\n---\n\n## 👨‍💻 Authors\n\n- **Bünyamin Yavuz** – Developer – [GitHub](https://github.com/BunyaminYavuz)\n- **Ömer Aygün** – Developer - [GitHub](https://github.com/OmerAygunn)\n\n---\n\n## 📄 License\n\nThis project is licensed under a custom license.  \nSee the [LICENSE](./LICENSE) file for more details.\n\n---\n\n## 🔖 Tags\n\n`RFID` `Raspberry Pi` `Node.js` `IoT` `MongoDB` `Lab Management` `Access Control` `Fullstack` `Educational Tech`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbunyaminyavuz%2Fclis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbunyaminyavuz%2Fclis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbunyaminyavuz%2Fclis/lists"}