TechTubeGuide is a dynamic web application built using Java Spring Boot for the backend and React for the frontend. This project demonstrates the integration of complex OOP concepts with modern web development technologies to create an API for managing Courses, Users, and Reviews.
-
Java Spring Boot (Maven Project): Backend framework to create RESTful APIs.
-
MongoDB Compass: NoSQL database for efficient data storage and retrieval.
-
Jakarta: Library for field validation to ensure data integrity.
-
Postman: Tool for API testing and development.
-
Lombok: Java library to reduce boilerplate code.
- React: JavaScript library for building user interfaces.
The main goal of this project is to develop an API that provides backend support for various web applications, such as a Course Suggestion WebApp. The API handles functionalities related to Courses, Users, and Reviews.
-
Courses API: Manage course data including creation, retrieval, update, and deletion.
-
Users API: Handle user registration, authentication, and profile management.
-
Reviews API: Allow users to submit and manage reviews for courses.
A constructor in Java is a special type of method invoked when an object is created. It initializes the object's state. Constructors have the same name as the class and do not have any return type, not even void
.
Method overloading allows a class to have multiple methods with the same name but different parameters. These methods must differ in the number or type of their parameters.
The super
keyword in Java is used to refer to the immediate parent class's constructor, methods, or instance variables. It is used to call the constructor or method of the immediate superclass.
The this
keyword in Java represents the current instance of a class. It is used to access class-level variables, call the current class constructor, and differentiate between instance variables and parameters with the same name.
Inheritance enables a new class (derived or child class) to inherit properties and behaviors from an existing class (base or parent class). The derived class can access the methods and fields of the parent class and can also have its own additional methods and fields.
An abstract class in Java is a class that cannot be instantiated on its own. It may contain both regular methods and abstract methods. Abstract methods are declared without a body and must be implemented by any non-abstract subclass.
An interface in Java is similar to an abstract class but can only contain method signatures and constants. It is a blueprint of a class and helps achieve abstraction and multiple inheritances.
A package in Java is a way to organize related classes and interfaces. It helps prevent naming conflicts and provides a structured mechanism to manage classes. Packages are directories that contain classes and interfaces.
Exception handling in Java is a mechanism to handle runtime errors. When an error occurs, Java creates an object (exception) that encapsulates information about the error and throws it.
TechTubeGuide.-.Google.Chrome.2024-06-15.21-05-27.mp4
-
Java Development Kit (JDK)
-
Maven
-
Node.js and npm
-
MongoDB
-
Clone the repository and start frontend server:
git clone https://github.com/PDhvanik/TechTubeGuide.git cd TechTubeGuide npm install npm start
-
Install dependencies and build the project:
cd BackEnd Java mvn clean install
-
Run the Spring Boot application:
mvn spring-boot:run
-
Access the frontend application at
http://localhost:3000
. -
The backend API can be accessed at
http://localhost:8080
.
Contributions are welcome! Please fork the repository and submit a pull request for any enhancements or bug fixes.
A special thanks to my friend, Neel Patel , for their exceptional contribution to the frontend design of this project. Their creativity played a crucial role in delivering a polished, responsive user experience.