BoardLive is a collaborative web application that allows multiple users to draw simultaneously on a virtual board. It utilizes React for the frontend and Spring Boot for the backend.
- Collaborative Drawing: Multiple users can draw simultaneously on the same virtual board.
- Board Clearing: Users can clear all drawings on the board with a dedicated button.
- Real-Time Updates: Changes on the board are instantly reflected for all connected users.
The frontend is built using React and utilizes p5.js for the drawing area.
-
App.js:
- Main component managing state for clicks and color.
- Includes a button to clear the board and an
ActionFetchercomponent to fetch updates from the server.
-
Board.js:
- Component representing the drawing area using p5.js.
- Renders clicks on the board and handles drawing interactions.
-
ActionFetcher.js:
- Component for periodic fetching of actions from the server using
axios. - Updates clicks state in the main component (
App.js).
- Component for periodic fetching of actions from the server using
The backend is developed in Spring Boot and provides REST endpoints for managing board clicks.
-
BoardApp.java:
- Main class that initializes the Spring Boot application.
- Configures and launches the server to handle REST requests.
-
Controller.java:
- REST controller handling board click operations.
- Defines endpoints for adding, retrieving, and clearing clicks.
-
ClickBoard.java:
- POJO class representing a click on the board.
- Contains properties like coordinates (x, y), color, and timestamp.
-
User Interaction:
- Users interact with the application through the web interface provided by React.
-
Request Handling:
- User requests are received by the Spring Boot server, which handles them using REST controllers.
-
Real-Time Updates:
- Utilizes
axiosto send and receive data between frontend and backend, keeping the board updated for all users.
- Utilizes
- Java Development Kit (JDK) 8 or higher
- Apache Maven
- Node.js and npm (for React frontend)
-
Clone the Repository:
git clone https://github.com/JohannBulls/BoardLive.git cd BoardLive -
Compile and Run the Backend:
cd boardliveSPRING mvn clean package mvn spring-boot:run -
Compile and Run the Frontend:
cd boardliveREACT npm install npm start -
Access the Application:
-
Clearing the Board:
-
Observing Real-Time Updates:
- As users draw on the board, changes are instantly reflected for all connected users.
- The application demonstrates real-time collaborative drawing functionality.
- Frontend: React, p5.js, axios
- Backend: Spring Boot, Java
- Tools: Maven for dependency management
- Johann Amaya Lopez - JohannBulls - GitHub
This project is licensed under the MIT License. See the LICENSE file for details.


