Skip to content

Latest commit

 

History

425 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dan's Plugins Community Website

Description

Dan's Plugins Community Website is the central hub for the Dan's Plugins Community. It showcases DPC plugins, provides links to documentation and support resources, and acts as the public face of the community at https://dansplugins.com.

This repository holds both halves of the site:

Path What it is Toolchain
repository root The Next.js front end (pages/, components/, services/, utils/) Node.js 18+
dpc-api/ The Spring Boot back end serving community data (accounts, likes, factions, the plugin catalogue) Java 17, Maven (via the bundled ./mvnw)

Front-end work needs only Node.js. Back-end work also needs Java 17. Running the whole stack locally is easiest with Docker Compose — see Development.

Installation

First Time Installation

These steps run the front end on its own. Features backed by the API (accounts, likes, the leaderboard) need dpc-api running too; see Development.

  1. Ensure Node.js (v18 or later) is installed on your machine.
  2. Clone this repository: git clone https://github.com/Dans-Plugins/dansplugins-dot-com.git
  3. Install dependencies:
    npm install
  4. Build the project:
    npm run build
  5. Start the server:
    npm run start

The site will be available at http://localhost:3000.

Other Ways to Run It

npm run dev is the day-to-day development server, and Docker Compose brings up the whole stack including dpc-api. See the Development section below for both.

Usage

Documentation

Website

Support

You can find the support Discord server here.

Experiencing a bug?

Please fill out a bug report here.

Contributing

Testing

Lint

npm run lint

If you see no errors, the lint check has passed.

Unit Tests

The frontend uses Vitest for unit tests. Run the suite with:

npm test

Test files live in the __tests__/ directory. If all tests pass, the suite has succeeded.

Backend (dpc-api/)

If the change touches dpc-api/:

cd dpc-api && ./mvnw verify

CI runs the front-end checks and this one as separate jobs on every pull request.

Development

Hot-Reloading Dev Server

npm run dev is the hot-reloading path — edits are picked up without a restart:

npm run dev

On its own it serves the front end only, against whatever NEXT_PUBLIC_API_URL points at.

Full Local Stack (Docker Compose)

Docker Compose brings up the site together with dpc-api, its database, and the UserAuth service the API delegates authentication to. The site runs as a production build here, so it does not hot-reload: source is copied into the image, and changes need a rebuild (./up.sh rebuilds).

Setup

  1. Install Docker Desktop.
  2. Install the site's dependencies on the host:
    npm install
    This step is not optional: compose.yml bind-mounts ./node_modules into the website container, so on a fresh clone with no host node_modules the container starts against an empty directory and fails to launch.
  3. Set JWT_SECRET — the stack will not start without it. Either export it, or put it in a .env file in the project root (git-ignored):
    export JWT_SECRET="your-secret-key-at-least-32-bytes-long"
    See CONFIG.md for what it does and the other variables available.
  4. Start the stack:
    ./up.sh
    The site will be accessible at http://localhost:3000 and the API at http://localhost:45345.

Stopping the Server

./down.sh

Authors

Developers

Name Main Contributions
Dans Project founder and lead developer

License

This project is licensed under the MIT License.

You are free to use, modify, and distribute this software, provided that the original copyright and license notice are included.

See the LICENSE file for the full text.

Project Status

This project is in active development.

About

A website for the Dan's Plugins Community.

Topics

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages