package com.campus.eventmanagement.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.Date;
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Event {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long eventId;
    private String eventName;
    private String location;
    @Temporal(TemporalType.DATE)
    private Date eventDate;
    private String organizer;
    private String description;
}
UserRepository.java
package com.campus.eventmanagement.repository;
import com.campus.eventmanagement.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
    User findByUsername(String username);
}
EventRepository.java
package com.campus.eventmanagement.repository;
import com.campus.eventmanagement.model.Event;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface EventRepository extends JpaRepository<Event, Long> {
    // Custom query methods (if needed)
}
UserService.java
package com.campus.eventmanagement.service;
import com.campus.eventmanagement.model.User;
import com.campus.eventmanagement.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;
    public User registerUser(User user) {
        return userRepository.save(user);
    }
    public User getUserByUsername(String username) {
        return userRepository.findByUsername(username);
    }
    public List<User> getAllUsers() {
        return userRepository.findAll();
    }
}
EventService.java
package com.campus.eventmanagement.service;
import com.campus.eventmanagement.model.Event;
import com.campus.eventmanagement.repository.EventRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class EventService {
    @Autowired
    private EventRepository eventRepository;
    public Event createEvent(Event event) {
        return eventRepository.save(event);
    }
    public List<Event> getAllEvents() {
        return eventRepository.findAll();
    }
    public void deleteEvent(Long eventId) {
        eventRepository.deleteById(eventId);
    }
}
UserController.java
package com.campus.eventmanagement.controller;
import com.campus.eventmanagement.model.User;
import com.campus.eventmanagement.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/users")
public class UserController {
    @Autowired
    private UserService userService;
    @PostMapping("/register")
    public User registerUser(@RequestBody User user) {
        return userService.registerUser(user);
    }
    @GetMapping("/{username}")
    public User getUserByUsername(@PathVariable String username) {
        return userService.getUserByUsername(username);
    }
    @GetMapping("/all")
    public List<User> getAllUsers() {
        return userService.getAllUsers();
    }
}
EventController.java
package com.campus.eventmanagement.controller;
import com.campus.eventmanagement.model.Event;
import com.campus.eventmanagement.service.EventService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/events")
public class EventController {
    @Autowired
    private EventService eventService;
    @PostMapping("/create")
    public Event createEvent(@RequestBody Event event) {
        return eventService.createEvent(event);
    }
    @GetMapping("/all")
    public List<Event> getAllEvents() {
        return eventService.getAllEvents();
    }
    @DeleteMapping("/{eventId}")
    public void deleteEvent(@PathVariable Long eventId) {
        eventService.deleteEvent(eventId);
    }
}
Database Configuration
spring.datasource.url=jdbc:mysql://localhost:3306/event_management_db
spring.datasource.username=root
spring.datasource.password=yourpassword
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
2. Frontend: JavaFX Application
Step 1: Create the JavaFX Project Structure
Use an IDE like IntelliJ IDEA or Eclipse with JavaFX support.
Step 2: Design UI using FXML
Create a basic UI for the JavaFX application using FXML files. For simplicity, we'll focus on the main screens.
Main.fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<AnchorPane xmlns:fx="http://javafx.com/fxml" fx:controller="com.campus.eventmanagement.controller.MainController">
    <children>
        <VBox spacing="10">
            <Label text="Campus Event Management System" style="-fx-font-size: 20px;"/>
            <Button text="Register for Event" onAction="#handleRegisterForEvent"/>
            <Button text="View Events" onAction="#handleViewEvents"/>
            <Button text="Create Event" onAction="#handleCreateEvent"/>
        </VBox>
    </children>
</AnchorPane>
MainController.java
package com.campus.eventmanagement.controller;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
public class MainController {
    @FXML
    private void handleRegisterForEvent(ActionEvent event) {
        // Implementation of registering for an event
        showInfoAlert("Feature Coming Soon!");
    }
    @FXML
    private void handleViewEvents(ActionEvent event) {
        // Implementation of viewing events
        showInfoAlert("Feature Coming Soon!");
    }
    @FXML
    private void handleCreateEvent(ActionEvent event) {
        // Implementation of creating an event
        showInfoAlert("Feature Coming Soon!");
    }
    private void showInfoAlert(String message) {
        Alert alert = new Alert(Alert.AlertType.INFORMATION);
        alert.setTitle("Information");
        alert.setHeaderText(null);
        alert.setContentText(message);
        alert.showAndWait();
    }
}
MainApp.java
package com.campus.eventmanagement;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class MainApp extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("/Main.fxml"));
        primaryStage.setTitle("Campus Event Management System");
        primaryStage.setScene(new Scene(root));
        primaryStage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }
}
Step 5: Build and Run
- Make sure your JavaFX libraries are properly set up in your IDE.
- Run the Spring Boot backend by executing MainApp.javato start the JavaFX UI.
Summary
This code provides a comprehensive backend using Spring Boot and a basic frontend using JavaFX. The backend includes CRUD operations for users and events, while the frontend includes basic JavaFX layout and event handlers. 
Comments