This project is a collaborative environment designed for students at the University of Central Florida (UCF) to study for the Foundation Exam. The platform allows real-time coding sessions, room creation, problem statement changes, and user management, providing an interactive and engaging study experience.
- Collaborative Coding: Real-time coding sessions using WebSockets in Golang.
- User and Room Management: Creation, deletion, and management of study rooms and user roles.
- Problem Statement Updates: Ability to change problem statements dynamically.
- Robust Backend: Built with Java Spring Boot for API functionality.
- Persistent Storage: Utilizes PostgreSQL for data storage and Redis for live coding session management.
- Frontend: React
- Backend: Java Spring Boot
- Real-time Communication: WebSockets in Golang
- Databases: PostgreSQL, Redis
- Message Broker: RabbitMQ
- Docker
- Make
-
Clone the repository:
git clone https://github.com/colintle/fe-for-everyone.git cd fe-for-everyone
-
Navigate to the frontend directory and install dependencies:
cd frontend npm install
If you are on Windows, you need to convert the line endings of the mvnw
file from Windows-style (CRLF) to Unix-style (LF) to ensure compatibility with Unix-based environments like Docker.
- Using Visual Studio Code:
- Open the
mvnw
file in Visual Studio Code. - Locate the line ending format at the bottom-right corner of the window (e.g.,
CRLF
). - Click on the line ending format and select
LF
to convert the line endings. - Save the file.
- Open the
-
Build the Docker containers:
make build
-
Start the application:
make start-attached
- frontend/ - React application source code
- backend/ - Java Spring Boot application source code
- websocket-service/ - Golang WebSocket server source code
- database/ - PostgreSQL and Redis configuration
Ensure to configure your .env
file with the necessary environment variables. Use the template provided from .env.example