A full-stack event calendar application built with React, Spring Boot, and PostgreSQL.
- Interactive calendar interface using FullCalendar
- Create, read, update, and delete events
- Drag and drop event scheduling
- 24-hour time format support
- Responsive design with Material-UI
- RESTful API backend
- PostgreSQL database for persistent storage
- Docker and Docker Compose
- Node.js (for local development)
- Java 17 (for local development)
- Maven (for local development)
- Clone the repository:
git clone <repository-url>
cd ReactFullCalendarSpringboot- Start the application using Docker Compose:
docker-compose up --build- Access the application:
- Frontend: http://localhost:5173
- Backend API: http://localhost:8080
.
├── frontend/ # React + Vite frontend
│ ├── src/ # Source files
│ ├── Dockerfile # Frontend Docker configuration
│ └── package.json # Node.js dependencies
├── backend/ # Spring Boot backend
│ ├── src/ # Source files
│ ├── Dockerfile # Backend Docker configuration
│ └── pom.xml # Maven dependencies
└── docker-compose.yml # Docker Compose configuration
cd frontend
npm install
npm run devcd backend
mvn spring-boot:runCreate a .env file in the root directory:
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=calendar
BACKEND_PORT=8080
FRONTEND_PORT=5173The application uses PostgreSQL. The database is automatically created when running with Docker Compose.
The application comes with pre-configured sample events to demonstrate its functionality:
- Team Meeting (1-hour weekly sync)
- Project Review (2-hour monthly review)
- Client Presentation (1.5-hour demo)
- Training Session (3-hour training)
- Sprint Planning (1.5-hour planning)
To disable sample events:
- Delete or rename the file
backend/src/main/resources/data.sql - Restart the application using
docker-compose restart
GET /api/events- Get all eventsPOST /api/events- Create a new eventGET /api/events/{id}- Get event by IDPUT /api/events/{id}- Update eventDELETE /api/events/{id}- Delete event
This project is licensed under the MIT License.
### Backend Tests
```bash
cd backend
mvn test
- Build the application:
docker-compose build- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
- If the frontend fails to start, check if port 5173 is available
- If the backend fails to start, check if port 8080 is available
- For database connection issues, verify PostgreSQL credentials in the
.envfile
MIT