Project Story Inspiration This project was inspired by the need to create a robust platform for Linux test assessments, combining a modern React frontend with a Node.js backend. The goal was to streamline the process of evaluating Linux skills, automate session management, and provide a user-friendly interface for both students and administrators.
What I Learned Full-Stack Integration: I deepened my understanding of connecting React (frontend) with Express/Node.js (backend), including RESTful API design and state management. Docker & Containerization: Learned how to use Docker for consistent deployment and environment management. Session & Authentication: Explored secure session handling, authentication flows, and cleanup strategies. SQL Scripting: Improved my skills in writing and debugging SQL scripts for various assessment and session management tasks. Styling with Tailwind CSS: Enhanced UI/UX using Tailwind for rapid prototyping and responsive design. How I Built the Project Frontend:
Built with React, using functional components and hooks. Styled with Tailwind CSS for a clean, modern look. Organized code into reusable components and pages. Backend:
Developed with Node.js and Express. Implemented managers for authentication, questions, sessions, and logging. Used SQL scripts for database operations and session cleanup. Containerized the backend using Docker for easy deployment. Integration:
Connected frontend and backend via REST APIs. Ensured secure communication and error handling. Automated session cleanup and logging for reliability. Challenges Faced Session Management: Designing a reliable session cleanup service to prevent stale or orphaned sessions required careful planning and testing.
Database Consistency: Ensuring SQL scripts handled edge cases and maintained data integrity, especially during concurrent operations.
Docker Configuration: Debugging Dockerfile issues and ensuring the backend ran smoothly in containers was a learning curve.
Frontend-Backend Sync: Managing asynchronous data flow and error states between React and Express, especially for authentication and real-time updates.
Built With
- express.js
- javascript
- jsx
- mysql
- node.js
- proxmox
- react
- tailwind.css
- virtualization
- websockets
Log in or sign up for Devpost to join the conversation.