Skip to content

jithurx/note0

Repository files navigation

Note0 - Academic Material Sharing Platform

A comprehensive Java Spring Boot application for sharing academic materials, notes, and resources among students.

🚀 Quick Start

The application has been completely converted from Node.js to Java Spring Boot. All old files have been removed and the new application is ready to use.

Prerequisites

Windows Setup Guide

  1. Install Prerequisites:

    • Install Java: Run the installer and follow the prompts
    • Install Maven:
      • Extract the downloaded archive to C:\Program Files\Maven
      • Add C:\Program Files\Maven\bin to your System PATH
    • Install PostgreSQL:
      • Run the installer and note down your password
      • Keep the default port (5432)
      • Launch pgAdmin 4 to verify installation
  2. Running the Application:

    For Windows:

    # Open PowerShell as Administrator
    cd note0
    
    # Run the Windows script
    .\run-app.ps1

    If you get a security error, run:

    Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
    .\run-app.ps1

    For Linux/macOS:

    # Make the script executable
    chmod +x run-app.sh
    
    # Run the script
    ./run-app.sh

Installation & Setup

  1. Navigate to the application directory:

    cd note0-application
  2. Set up the database:

    # Create PostgreSQL database
    sudo -u postgres psql
    CREATE DATABASE notes_app;
    \q
    
    # Run the schema
    psql -U postgres -d notes_app -f database/schema.sql
  3. Run the application:

    For Windows (PowerShell):

    .\run.ps1

    For Linux/macOS:

    chmod +x run.sh  # Make script executable (first time only)
    ./run.sh

    Manual method (any platform):

    # Build the application
    mvn clean install
    
    # Run the application
    mvn spring-boot:run
  4. Access the application:

    The application typically takes a few seconds to start. Wait for the message "Started Note0Application" in the console.

📁 Project Structure

note0/
├── note0-application/          # Main Java Spring Boot application
│   ├── src/main/java/com/note0/
│   │   ├── controller/         # REST & Web controllers
│   │   ├── dto/               # Data Transfer Objects
│   │   ├── entity/            # JPA entities
│   │   ├── repository/        # Data repositories
│   │   ├── security/          # Security configuration
│   │   ├── service/           # Business logic
│   │   └── Note0Application.java
│   ├── src/main/resources/
│   │   ├── templates/         # Thymeleaf templates
│   │   ├── application.yml    # Configuration
│   │   └── data.sql          # Sample data
│   ├── database/schema.sql    # Database schema
│   ├── README.md             # Detailed documentation
│   ├── DEPLOYMENT.md         # Deployment guide
│   ├── test-api.http         # API testing
│   └── run.sh               # Startup script
├── CONVERSION_SUMMARY.md     # Conversion details
├── report.md                # Original analysis report
└── README.md               # This file

🔑 Default Credentials

✨ Features

  • User Authentication: JWT-based authentication with role-based access control
  • Material Upload: Upload and share academic materials with file validation
  • Rating System: Rate materials and view community feedback
  • Subject Organization: Organize materials by subjects and modules
  • Modern UI: Responsive web interface built with Bootstrap and Thymeleaf
  • Admin Panel: User management and material verification

🛠️ Tech Stack

  • Backend: Spring Boot 3.2.0, Spring Security, Spring Data JPA
  • Database: PostgreSQL
  • Frontend: Thymeleaf, Bootstrap 5, JavaScript
  • Authentication: JWT (JSON Web Tokens)
  • Build Tool: Maven

📚 Documentation

🔄 Migration Notes

This project was successfully converted from a Node.js application to Java Spring Boot. All original functionality has been preserved and enhanced:

  • ✅ All API endpoints maintained
  • ✅ Enhanced security with Spring Security
  • ✅ Modern responsive UI
  • ✅ Improved code organization and maintainability
  • ✅ Production-ready configuration

🚀 Getting Started

  1. Follow the setup instructions above
  2. Access the web interface at http://localhost:8080
  3. Register a new account or use the admin credentials
  4. Start uploading and sharing materials!

For detailed information, see the Application README.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •