Skip to content

Latest commit

Β 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SpringForge Website

An Intelligent Spring Boot Development Ecosystem β€” Official distribution website for the SpringForge IntelliJ IDEA plugin.

SpringForge is a comprehensive intelligent development platform powered by Machine Learning, RAG-based debugging, and architecture-aware code generation, featuring four core AI components for modern Spring Boot development.

πŸ“‹ Table of Contents

🎯 Overview

This repository contains the official website for SpringForge, a distribution platform that allows administrators to upload and manage IntelliJ IDEA plugin releases. The site features:

  • Public Landing Page - Showcases the four SpringForge AI components
  • Plugin Distribution - Download system for the latest plugin releases
  • Admin Dashboard - Secure upload interface for managing plugin versions (up to 1GB)
  • PostgreSQL Storage - Binary storage for plugin files with version tracking

πŸ—οΈ Architecture

The project consists of two main components:

Frontend (Next.js)

  • Framework: Next.js 15 (App Router)
  • Styling: Tailwind CSS
  • Port: 3000
  • Features: Server-side rendering, optimized for SEO

Backend (NestJS)

  • Framework: NestJS
  • Database: PostgreSQL
  • Port: 4000
  • Features: RESTful API, file upload handling (up to 1GB), basic authentication

πŸ› οΈ Technology Stack

Frontend

  • Next.js 15 - React framework with App Router
  • TypeScript - Type-safe JavaScript
  • Tailwind CSS - Utility-first CSS framework
  • React 19 - UI library

Backend

  • NestJS - Progressive Node.js framework
  • TypeScript - Type-safe development
  • PostgreSQL - Relational database
  • pg - PostgreSQL driver
  • Multer - File upload middleware
  • dotenv - Environment configuration

πŸš€ Getting Started

Prerequisites

  • Node.js 18+ (v22 recommended)
  • npm or yarn
  • PostgreSQL 12+

Installation

  1. Clone the repository

    git clone https://github.com/springforgeecosystem-prog/SpringForge-Website.git
    cd SpringForge-Website
  2. Install Backend Dependencies

    cd Backend
    npm install
  3. Install Frontend Dependencies

    cd ../Frontend
    npm install
  4. Set up PostgreSQL Database

    CREATE DATABASE springforge_static_web;
  5. Configure Environment Variables

    See Configuration section below.

Running the Application

Backend:

cd Backend
npm run start:dev

Server will start on http://localhost:4000

Frontend:

cd Frontend
npm run dev

Site will be available at http://localhost:3000

βš™οΈ Configuration

Backend Environment Variables

Create Backend/.env:

# Admin Credentials
ADMIN_USERNAME=admin
ADMIN_PASSWORD=your_secure_password

# Server Configuration
PORT=4000

# PostgreSQL Database
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=springforge_static_web
POSTGRES_USER=postgres
POSTGRES_PASSWORD=your_db_password

Frontend Environment Variables

Create Frontend/.env:

# Backend API URL (server-side)
API_URL=http://localhost:4000

# Backend API URL (client-side)
NEXT_PUBLIC_API_URL=http://localhost:4000

Note: NEXT_PUBLIC_API_URL is used for client-side uploads to bypass Next.js's 10MB proxy limit.

πŸ“ Project Structure

SpringForge-Website/
β”œβ”€β”€ Backend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ admin/              # Admin upload functionality
β”‚   β”‚   β”‚   β”œβ”€β”€ admin.controller.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ admin.service.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ admin.module.ts
β”‚   β”‚   β”‚   └── basic-auth.guard.ts
β”‚   β”‚   β”œβ”€β”€ plugin/             # Plugin retrieval endpoints
β”‚   β”‚   β”‚   β”œβ”€β”€ plugin.controller.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ plugin.service.ts
β”‚   β”‚   β”‚   └── plugin.module.ts
β”‚   β”‚   β”œβ”€β”€ database/           # PostgreSQL integration
β”‚   β”‚   β”‚   β”œβ”€β”€ database.service.ts
β”‚   β”‚   β”‚   └── database.module.ts
β”‚   β”‚   β”œβ”€β”€ app.module.ts
β”‚   β”‚   └── main.ts
β”‚   β”œβ”€β”€ .env
β”‚   └── package.json
β”‚
β”œβ”€β”€ Frontend/
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ admin/              # Admin upload page
β”‚   β”‚   β”‚   └── page.tsx
β”‚   β”‚   β”œβ”€β”€ page.tsx            # Public landing page
β”‚   β”‚   β”œβ”€β”€ layout.tsx
β”‚   β”‚   └── globals.css
β”‚   β”œβ”€β”€ public/
β”‚   β”‚   └── logo.png
β”‚   β”œβ”€β”€ middleware.ts           # Request handling
β”‚   β”œβ”€β”€ next.config.ts
β”‚   β”œβ”€β”€ .env
β”‚   └── package.json
β”‚
└── README.md

✨ Features

Public Features

  • Landing Page - Showcases four SpringForge AI components
  • Plugin Download - Latest version download system
  • Version Information - Displays current release version and date
  • Installation Guide - Step-by-step plugin installation instructions

Admin Features

  • Secure Upload - Basic authentication protected
  • Large File Support - Handles plugin files up to 1GB
  • Version Management - Automatic version tracking
  • File Validation - Accepts only .zip files
  • Database Storage - Binary storage in PostgreSQL

Four SpringForge AI Components

  1. πŸ—οΈ Architecture-Aware Code Generation

    • Intelligent project scaffolding powered by ML and LLMs
    • Analyzes existing structures (Layered, MVC, Clean)
    • Dynamic Prompt Construction for structurally valid code
  2. πŸ” RAG-Based Runtime Error Analysis

    • AI-powered debugging without leaving IDE
    • 75% precision in documentation retrieval

    • 90% fix accuracy

  3. 🎯 AI-Driven Code Quality Assurance

    • Dual-Engine AI Architecture
    • Anti-Pattern Classifier
    • Quality Score Regression (0–100)
  4. πŸš€ Intelligent CI/CD & Infrastructure Assistant

    • Secure DevOps artifact generation
    • Claude + MCP integration
    • Multi-layer validation (Hadolint, KubeLinter)

πŸ”§ Development

Backend Development

cd Backend
npm run start:dev    # Development with hot-reload
npm run build        # Production build
npm run start:prod   # Production start

Frontend Development

cd Frontend
npm run dev          # Development server
npm run build        # Production build
npm run start        # Production server

Database Schema

The backend automatically creates the required table on startup:

CREATE TABLE IF NOT EXISTS plugin_releases (
  id SERIAL PRIMARY KEY,
  version VARCHAR(50) NOT NULL,
  original_name VARCHAR(255) NOT NULL,
  file_data BYTEA NOT NULL,
  upload_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  is_current BOOLEAN DEFAULT false
);

πŸš€ Deployment

Backend Deployment

  1. Set production environment variables
  2. Build the application: npm run build
  3. Start: npm run start:prod
  4. Ensure PostgreSQL is accessible

Frontend Deployment

  1. Set production API_URL and NEXT_PUBLIC_API_URL
  2. Build: npm run build
  3. Start: npm run start
  4. Configure reverse proxy if needed

Important Notes

  • File Upload Limit: Backend supports up to 1GB uploads
  • Direct Backend Calls: Admin uploads bypass Next.js proxy to support large files
  • CORS: Backend enables CORS for all origins (configure for production)
  • Authentication: Uses HTTP Basic Auth (consider OAuth for production)

πŸ” Security Considerations

  • Change default admin credentials in production
  • Use HTTPS in production environments
  • Configure CORS to specific origins
  • Consider implementing rate limiting
  • Use environment-specific secrets
  • Regular security audits for dependencies

πŸ“ API Endpoints

Public Endpoints

  • GET /api/plugin/info - Get current plugin information
  • GET /api/plugin/download - Download current plugin release

Admin Endpoints

  • POST /api/admin/upload - Upload new plugin version (requires Basic Auth)

🀝 Contributing

This is a research project (25-26J-451) at SLIIT. For contributions or inquiries, please contact the development team.

πŸ“„ License

Β© 2026 SpringForge Β· Research Project 25-26J-451 Β· SLIIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages