Software Development Project for CMPE-273 st SJSU under Professor Bhaskar.
The Back2Office project is an end-to-end scalable Office Space booking application developed using a combination of Java, ReactJS, Spring Boot, JWT, MySQL, and various AWS services. The application is designed to provide users with the ability to search for and book office spaces, manage bookings, and access essential amenities.
- Office Space Search: Users can search for available office spaces based on their preferences.
- Booking Management: Users can easily book and manage their office space reservations.
- Amenity Addition: Users have the option to add amenities to their bookings for enhanced convenience.
- Java: Used for backend development and core business logic.
- ReactJS: Employed for building the user interface and enabling dynamic front-end interactions.
- Spring Boot: Utilized to create a robust and efficient backend RESTful API.
- JWT (JSON Web Tokens): Implemented for secure user authentication and authorization.
- MySQL: Used as the database management system for storing application data.
- AWS Elastic Beanstalk: Deployed the application to achieve automatic scaling and easier management.
- AWS S3: Used for storing and managing static assets.
- AWS RDS: Employed to host the MySQL database.
- AWS EBS (Elastic Block Store): Utilized to provide block storage for the application.
The application is deployed on AWS Elastic Beanstalk, which ensures automatic scaling based on user demand and optimizes response times. A load balancer has been integrated to distribute network traffic, resulting in a 27% improvement in response time and scalability.
To ensure the security of user data and application functionality, the project has implemented a robust authentication system. JSON Web Tokens (JWT) are used for secure user authentication and authorization. This implementation has led to a 36% decrease in unauthorized access attempts, enhancing the overall security of the application.
To run the Back2Office application locally, follow these steps:
- Clone the repository from the provided link.
- Install the necessary dependencies for both the backend (Java, Spring Boot) and frontend (ReactJS) components.
- Set up a MySQL database and configure the database connection in the application.
- Run the backend and frontend components using their respective commands.
- Access the application through a web browser.
For detailed setup instructions and usage guidelines, refer to the project's documentation.
Contributions to the Back2Office project are welcome. If you encounter any bugs or have suggestions for improvements, please open an issue on the GitHub repository.
For further inquiries, contact Sankalp at work.sankalptiwari@gmail.com.
On some macOS systems, Control Center binds to port 5000. In that case, start the backend on 8080 and point the frontend to it:
-
Backend (from
Back2Office/backend):
./mvnw spring-boot:run -Dspring-boot.run.arguments=--server.port=8080 -
Frontend install (from
Back2Office/frontend/react_frontend):
npm install --legacy-peer-deps
(yarn needs sudo here; npm with--legacy-peer-depsworks) -
Frontend start:
BASE_URL=http://localhost:8080/ npm start -
Open http://localhost:3000. The app will talk to the backend at http://localhost:8080.