Clan administration site for FAF
Clone or download
Pull request Compare This branch is 83 commits ahead, 137 commits behind IDragonfire:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.vscode
src
www
.dockerignore
.env.example
.eslintrc.js
.gitignore
.travis.yml
Dockerfile
README.md
package.json
server.js
webpack.config.js

README.md

Build Status

New Clan App based on the FAF API

This App is based on React and is a Single Page Application (SPA). For faster development and to keep the design and usage similar the old app some bootstrap components are used.

The Endpoint of this app is the FAF-API. From my view the current python implementation is not stable and hard to extend, so I used the Java Implementation from downlord: https://github.com/micheljung/faf-java-api/tree/feature/clan

Preconditions

  1. FAF-DB (for the API): https://github.com/FAForever/db
  2. FAF-Java-API: https://github.com/micheljung/faf-java-api/tree/feature/clan

Installation without Docker

  1. Install node
  2. Run npm install

Installation with Docker

  1. docker build -t faf-clanapp .
  2. docker run --name faf-clanapp -d -p 8080:8080 --env-file .env.example faf-clanapp

Development Server

You can run the development server with (Port 8080 must be open)

npm run dev

Don't forget to run the tests (currently only eslint)

npm test 

Configuration

You must maybe adapt some environment variables, see .env.example. In Development Mode you find some fallback values in webpack.config.js

Don't forget to add a OAuth ClientId to the faf database, e.g.

INSERT INTO `oauth_clients` (`id`, `name`, `client_secret`, `client_type`, `redirect_uris`, `default_redirect_uri`, `default_scope`) VALUES ('83891c0c-feab-42e1-9ca7-515f94f808ef', 'clanpp', '83891c0c-feab-42e1-9ca7-515f94f808ef', 'public', '-', '-', '-');

Production Server

See the .travis.yml and Dockerfile

Visit http://localhost:8080/ to see the app.

Features

This list ist a little overview, maybe some kind of specification for the clan app

General

  • A user can login with the faf credentials over OAuth
  • A user can logout
  • A logged in user see his clan
  • A logged in user has a shortcut to navigate to his clan
  • A logged in user can create a new clan

Clan List

  • A user can see a list of clans
  • A user can search in this list
  • A user sort the list of clans (by Name, Taag, Leaer, Member Count)
  • A user can see get navigate to the Clan Page

Clan Page

  • A user see some basic data about the clan (name, tag, description, leader, founder, foundet at)
  • A user see a list of all clan members
  • A user can sort the list of clan members
  • A user can search the list of clan members
  • A clan member clan leave the clan
  • A clan leader can edit the basic clan data except founder and created at
  • A clan leader can invite players see Clan Invitation
  • A clan leader can delete the clan
  • A clan leader can kick members
  • A clan leader can transfer the leadership to a clan member

Clan Invitation

  • A clan leader can generate an invitation link
  • A user can with the correct invitation link join the clan

Technolgies

Resources

I suggest to use Visual Studio Code for development with this plugins:

  • ESLint
  • Sass