Skip to content

This is a blogging website developed using Spring, Spring Boot and React offering a robust and scalable architecture. It features a rich text editor with support for links, images, and formatted text, ensuring a seamless writing experience. Additionally, it integrates Generative AI powered by Google Gemini Flash API.

Notifications You must be signed in to change notification settings

gaju-01/TechCradle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ TechCradle - Intelligent Blogging Platform

TechCradle is a powerful, Java-based content management system tailored for a modern blogging experience. Built using the Spring Framework and associated technologies, it offers secure authentication, multilingual support, and seamless blog authoring enriched with generative AI.

✨ Key Features

  • πŸ” OTP-based Authentication
  • πŸ›‘οΈ JWT Token-based Authorization
  • πŸ‘₯ User-based Resource Access (currently disabled)
  • 🌐 Multilingual Support: English, French, and Dutch
  • πŸ“ Rich Text Editing: Add links, images, and formatted text
  • πŸ€– AI-Powered Blog Writing: Integrated with Gemini Flash API for generative writing assistance
  • πŸ“š Full Blog Lifecycle: Create, read, update, and delete blog documents
  • πŸ”” Social Features: Follow and unfollow other users

βš™οΈ Technologies Used

  • Java 17
  • Spring Boot
  • Spring Security
  • JWT (JSON Web Tokens)
  • H2 (depending on deployment)
  • Gemini Flash API (for AI content generation)

πŸ› οΈ Requirements

  • Java 17+
  • Maven 3.6+
  • Node.js & npm
  • Git

πŸš€ Getting Started

  1. Clone the repository:

    git clone https://github.com/yourusername/techcradle.git
    cd techcradle
  2. Install dependencies and build the project:

    cd SpringBoot
    mvn clean install
  3. Run the application:

    mvn spring-boot:run
  4. Start the frontend:

    cd ../frontend
    npm install
    npm start

πŸ“Œ Notes

  • Ensure environment variables are properly set for API keys (e.g., Gemini Flash API).
  • User role access is a planned feature and is currently disabled.

Gemini Response Images

Response00 Response01 Response03 Blogs01 Response04 Response05

πŸš€ Getting Started with the Application

Steps to Start the Application

  1. Clone the repository Use git clone to clone the repository from GitHub, which includes all the files, branches, and commits.

    git clone https://github.com/yourusername/repository-name.git
  2. Navigate to the SpringBoot project directory From the root of the project, cd into the SpringBoot folder.

    cd SpringBoot
  3. Build the project Use mvn clean install to generate the JAR file that contains all the dependencies, classes, etc.

    mvn clean install
  4. Run the application Use mvn spring-boot:run to execute the JAR file and host the application at the default port 8080.

    mvn spring-boot:run
  5. Navigate to the frontend project directory From the root of the project, cd into the frontend directory.

    cd frontend
  6. Run the frontend application Use npm install to install the dependencies and npm start to run the React-based frontend project.

Getting Started with Create React App

This project was bootstrapped with Create React App.

Available Scripts

In the project directory, you can run:

npm start

Runs the app in development mode. Open http://localhost:3000 to view it in the browser.

The page will reload when you make changes. You may also see any lint errors in the console.

npm test

Launches the test runner in the interactive watch mode.

See the section about running tests for more information.

npm run build

Builds the app for production to the build folder. It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified, and the filenames include hashes. Your app is ready to be deployed!

See the section about deployment for more information.

npm run eject

Note: This is a one-way operation. Once you eject, you can't go back!

If you aren't satisfied with the build tool and configuration choices, you can eject at any time. This command will remove the single build dependency from your project. It will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc.) into your project, giving you full control over them. All commands except eject will still work, but they will point to the copied scripts so you can tweak them. At this point, you're on your own.

You don't have to ever use eject. The curated feature set is suitable for small and middle deployments.

Learn More

You can learn more in the Create React App documentation.

To learn React, check out the React documentation.

Additional Links

Getting Started with Spring Boot

Reference Documentation

For further reference, please consider the following sections:

Guides

Maven Parent Overrides

Due to Maven's design, elements are inherited from the parent POM to the project POM. To prevent unwanted elements like <license> and <developers> from the parent, the project POM contains empty overrides. If you manually switch to a different parent and want the inheritance, remove those overrides.

About

This is a blogging website developed using Spring, Spring Boot and React offering a robust and scalable architecture. It features a rich text editor with support for links, images, and formatted text, ensuring a seamless writing experience. Additionally, it integrates Generative AI powered by Google Gemini Flash API.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published