1 Commits

Author SHA1 Message Date
71e50d84c3 Update README.md 2026-06-29 21:27:17 +02:00
48 changed files with 79 additions and 429 deletions

View File

@@ -7,4 +7,4 @@ A dictionnary of arcane spells from a homebrew tabletop RPG.
## Authors
* **Alexis Pelé** - *Designing, Development & Conception* - [Github](https://github.com/AlexisNP)
* **Mathieu Hance** - *Designing, Integration*
* **mathie** - *Designing, Integration*

View File

@@ -4270,9 +4270,9 @@
"dev": true
},
"elliptic": {
"version": "6.5.3",
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz",
"integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz",
"integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==",
"dev": true,
"requires": {
"bn.js": "^4.4.0",
@@ -7490,9 +7490,9 @@
}
},
"lodash": {
"version": "4.17.19",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
"integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
"version": "4.17.15",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
"dev": true
},
"lodash.defaultsdeep": {
@@ -8046,9 +8046,9 @@
}
},
"node-fetch": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
"integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
},
"node-forge": {
"version": "0.9.0",

View File

@@ -15,7 +15,6 @@ export default {
<style lang="scss" scoped>
#srs {
padding-top: 50px;
min-height: 100vh;
background: url('./assets/images/bg1.png') center center fixed repeat;
}

View File

@@ -1,3 +1,7 @@
// Other global files
@import '_variables';
@import '_fonts';
// RESETS
html {
font-size: $font-size-root;
@@ -5,7 +9,7 @@ html {
height: 100%;
-webkit-overflow-scrolling: touch;
line-height: 1.15;
color: $primary-base;
color: $primary--base;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
* {
@@ -38,11 +42,10 @@ hr {
border-top-color: rgba($black, .25);
}
// BOOTSTRAP OVERRIDES
// BOOTSTRAP
.nav-link {
cursor: pointer;
}
.btn {
margin-right: 5px;
}
@@ -50,10 +53,6 @@ hr {
.word-break{ word-wrap: break-word; }
.cursor-pointer{ cursor: pointer; }
.font-weight-black {
font-weight: $heavy;
}
// LAYOUTS
.fullpage {
min-height: calc(100vh - 56px);

View File

@@ -1,31 +1,28 @@
//// COLOURS
// Global colours
$white: #FFF;
$black: #000;
$dull-black: #0D0D0D;
$dull--black: #0D0D0D;
$primary-base: #2c3e50;
$primary-blue: #599EF4;
$secondary-blue: #355F91;
$primary--base: #2c3e50;
$primary--blue: #599EF4;
$secondary--blue: #355F91;
$valid: #6AC47B;
$warning: #F7A758;
$alert: #F44E4E;
// Spell colours
$spell-card--innerborder: #f5ebd8;
// FONT FAMILY BASES
$font-family: 'Lato', sans-serif !default;
$font-family: 'Lato', sans-serif;
$light: 300;
$regular: 400;
$bold: 700;
$heavy: 900;
$font-light: 300;
$font-regular: 400;
$font-bold: 700;
$font-size-root: 16px !default;
$font-size-base: 1rem !default;
$font-size-root: 15px !default;
$font-size-base: 1.2rem !default;
$line-height-base: 1.3 !default;
// Breakpoints
$bp-sm: 576px;
$bp-md: 768px;
$bp-lg: 992px;
$bp-xl: 1200px;

View File

@@ -1,5 +1,5 @@
<template>
<nav class="navbar navbar-expand-sm fixed-top navbar-dark bg-dark">
<nav class="navbar navbar-expand-sm navbar-dark bg-dark">
<router-link :to="'/'" class="navbar-brand font-display font-weight-700">Auracle</router-link>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
@@ -34,10 +34,6 @@
{
text: 'Écoles',
url: '/ecoles',
},
{
text: 'Chronologie',
url: '/ages',
}
]
}

View File

@@ -61,6 +61,7 @@
<template v-slot:modal-footer="{ close }">
<button type="button" class="btn btn-danger" data-dismiss="modal" @click="close()">Fermer</button>
<!-- <input type="button" class="btn btn-success" value="Enregistrer comme nouveau" @click="cloneSpell()"> -->
<input type="submit" class="btn btn-primary" value="Enregistrer" form="update-spell">
</template>
</b-modal>

View File

@@ -1,307 +0,0 @@
<template>
<ul class="timeline">
<li class="timeline-item period first">
<div class="timeline-info"></div>
<div class="timeline-content">
<h2 class="timeline-title">LE RENOUVEAU</h2>
</div>
</li>
<li class="timeline-item">
<div class="timeline-info">
<span>March 12, 2016</span>
</div>
<div class="timeline-marker"></div>
<div class="timeline-content">
<h3 class="timeline-title">Event Title</h3>
<p>Nullam vel sem. Nullam vel sem. Integer ante arcu, accumsan a, consectetuer eget, posuere ut, mauris. Donec orci lectus, aliquam ut, faucibus non, euismod id, nulla. Donec vitae sapien ut libero venenatis faucibus. ullam dictum felis eu pede mollis pretium. Pellentesque ut neque.</p>
</div>
</li>
<li class="timeline-item">
<div class="timeline-info">
<span>March 23, 2016</span>
</div>
<div class="timeline-marker"></div>
<div class="timeline-content">
<h3 class="timeline-title">Event Title</h3>
<p>Nullam vel sem. Nullam vel sem. Integer ante arcu, accumsan a, consectetuer eget, posuere ut, mauris. Donec orci lectus, aliquam ut, faucibus non, euismod id, nulla. Donec vitae sapien ut libero venenatis faucibus. ullam dictum felis eu pede mollis pretium. Pellentesque ut neque. </p>
</div>
</li>
<li class="timeline-item period">
<div class="timeline-info"></div>
<div class="timeline-marker"></div>
<div class="timeline-content">
<h2 class="timeline-title">April 2016</h2>
</div>
</li>
<li class="timeline-item">
<div class="timeline-info">
<span>April 02, 2016</span>
</div>
<div class="timeline-marker"></div>
<div class="timeline-content">
<h3 class="timeline-title">Event Title</h3>
<p>Nullam vel sem. Nullam vel sem. Integer ante arcu, accumsan a, consectetuer eget, posuere ut, mauris. Donec orci lectus, aliquam ut, faucibus non, euismod id, nulla. Donec vitae sapien ut libero venenatis faucibus. ullam dictum felis eu pede mollis pretium. Pellentesque ut neque. </p>
</div>
</li>
<li class="timeline-item">
<div class="timeline-info">
<span>April 28, 2016</span>
</div>
<div class="timeline-marker"></div>
<div class="timeline-content">
<h3 class="timeline-title">Event Title</h3>
<p>Nullam vel sem. Nullam vel sem. Integer ante arcu, accumsan a, consectetuer eget, posuere ut, mauris. Donec orci lectus, aliquam ut, faucibus non, euismod id, nulla. Donec vitae sapien ut libero venenatis faucibus. ullam dictum felis eu pede mollis pretium. Pellentesque ut neque. </p>
</div>
</li>
</ul>
</template>
<script>
export default {
name: 'timeline',
}
</script>
<style lang="scss" scoped>
/*==================================
TIMELINE
==================================*/
/*-- GENERAL STYLES
------------------------------*/
.timeline {
margin: 0;
padding-top: 25px;
width: 100%;
line-height: 1.4em;
list-style: none;
h1, h2, h3, h4, h5, h6 {
line-height: inherit;
}
}
/*----- TIMELINE ITEM -----*/
.timeline-item {
padding-left: 40px;
position: relative;
&:last-child {
padding-bottom: 0;
}
}
/*----- TIMELINE INFO -----*/
.timeline-info {
font-size: 12px;
font-weight: 700;
letter-spacing: 3px;
margin: 0 0 .5em 0;
text-transform: uppercase;
white-space: nowrap;
}
/*----- TIMELINE MARKER -----*/
.timeline-marker {
position: absolute;
top: 0; bottom: 0; left: 0;
width: 15px;
&:before {
background: $primary-blue;
border: 3px solid transparent;
border-radius: 100%;
content: "";
display: block;
height: 15px;
position: absolute;
top: 4px; left: 0;
width: 15px;
transition: background 0.3s ease-in-out, border 0.3s ease-in-out;
}
&:after {
content: "";
width: 3px;
background: #CCD5DB;
display: block;
position: absolute;
top: 24px; bottom: 0; left: 6px;
}
.timeline-item:last-child &:after {
content: none;
}
}
.timeline-item:not(.period):hover .timeline-marker:before {
background: transparent;
border: 3px solid $primary-blue;
}
/*----- TIMELINE CONTENT -----*/
.timeline-content {
padding-bottom: 40px;
p:last-child {
margin-bottom: 0;
}
}
/*----- TIMELINE PERIOD -----*/
.period {
padding: 0;
.timeline-info {
display: none;
}
.timeline-marker {
&:before {
background: transparent;
content: "";
width: 15px;
height: auto;
border: none;
border-radius: 0;
top: 0;
bottom: 30px;
position: absolute;
border-top: 3px solid #CCD5DB;
border-bottom: 3px solid #CCD5DB;
}
&:after {
content: "";
height: 32px;
top: auto;
}
}
&:not(.first) {
.timeline-content {
padding: 40px 0 70px;
}
}
.timeline-title {
margin: 0;
font-family: 'Playfair Display', sans-serif;
font-weight: $bold;
}
}
/*----------------------------------------------
MOD: TIMELINE SPLIT
----------------------------------------------*/
.timeline-split {
@media (min-width: 768px) {
.timeline {
display: table;
}
.timeline-item {
display: table-row;
padding: 0;
}
.timeline-info,
.timeline-marker,
.timeline-content,
.period .timeline-info {
display: table-cell;
vertical-align: top;
}
.timeline-marker {
position: relative;
}
.timeline-content {
padding-left: 30px;
}
.timeline-info {
padding-right: 30px;
}
.period .timeline-title {
position: relative;
left: -45px;
}
}
}
/*----------------------------------------------
MOD: TIMELINE CENTERED
----------------------------------------------*/
.timeline-centered {
@extend .timeline-split;
@media (min-width: 992px) {
&,
.timeline-item,
.timeline-info,
.timeline-marker,
.timeline-content {
display: block;
margin: 0;
padding: 0;
}
.timeline-item {
padding-bottom: 40px;
overflow: hidden;
}
.timeline-marker {
position: absolute;
left: 50%;
margin-left: -7.5px;
}
.timeline-info,
.timeline-content {
width: 50%;
}
> .timeline-item:nth-child(odd) .timeline-info {
float: left;
text-align: right;
padding-right: 30px;
}
> .timeline-item:nth-child(odd) .timeline-content {
float: right;
text-align: left;
padding-left: 30px;
}
> .timeline-item:nth-child(even) .timeline-info {
float: right;
text-align: left;
padding-left: 30px;
}
> .timeline-item:nth-child(even) .timeline-content {
float: left;
text-align: right;
padding-right: 30px;
}
> .timeline-item.period .timeline-content {
float: none;
padding: 0;
width: 100%;
text-align: center;
}
.timeline-item.period {
padding: 50px 0 90px;
}
.period .timeline-marker:after {
height: 30px;
bottom: 0;
top: auto;
}
.period .timeline-title {
left: auto;
}
}
}
/*----------------------------------------------
MOD: MARKER OUTLINE
----------------------------------------------*/
.marker-outline {
.timeline-marker {
&:before {
background: transparent;
border-color: $primary-blue;
}
}
.timeline-item:hover .timeline-marker:before {
background: $primary-blue;
}
}
</style>

View File

@@ -23,10 +23,7 @@ window.$ = jquery
window.jquery = jquery
// Styles
// Fonts
import './assets/scss/_fonts.scss'
import './assets/scss/_global.scss'
import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue/dist/bootstrap-vue.css'
import 'bootstrap/dist/js/bootstrap.js'

View File

@@ -2,10 +2,10 @@
<div class="container-fluid">
<section class="d-flex justify-content-center align-items-center">
<main class="px-4">
<h1 class="title text-dark mb-4 font-display font-weight-black line-height-100">"C'est magique, ta gueule."</h1>
<h1 class="title text-dark mb-4 font-display line-height-100">"C'est magique, ta gueule."</h1>
<div class="lead font-display font-weight-bold"> N'importe quel MJ, une fois dans sa vie</div>
<hr class="w-50">
<div class="lead"><span class="font-display font-weight-bold">Auracle</span> est une base de données publique en ligne pour sortilèges, en soutien au jeu de rôle sur table <span class="font-weight-bold text-secondary">Leïm</span>.</div>
<div class="lead"><span class="font-display">Auracle</span> est une base de données publique en ligne pour sortilèges, en soutien au jeu de rôle sur table <span class="font-weight-bold text-secondary">Leïm</span>.</div>
</main>
</section>
</div>
@@ -23,19 +23,20 @@ section {
main {
width: 1000px;
.title {
color: $white;
font-size: 64px;
font-size: 5rem;
font-weight: 900;
text-align: center;
}
.lead {
.font-display {
font-weight: 700;
}
}
}
}
@media only screen and (max-width: $bp-md) {
section {
main {
@media only screen and (max-width: 600px) {
.title {
font-size: 48px;
}
}
font-size: 3.5rem;
}
}
</style>

View File

@@ -5,9 +5,9 @@
</template>
<script>
export default {
export default {
}
}
</script>
<style>

View File

@@ -6,14 +6,14 @@
</template>
<script>
import SpellsList from "~/components/spells/spells-list"
import SpellsList from "~/components/spells/spells-list"
export default {
export default {
name: 'spells-page',
components: {
'spell-list': SpellsList,
}
}
}
</script>
<style lang="scss"></style>

View File

@@ -1,21 +0,0 @@
<template>
<div class="container-fluid p-4" id="spell-container">
<h1 class="display-3 font-display mb-3">Chronologie</h1>
<timeline/>
</div>
</template>
<script>
import Timeline from '~/components/timeline/timeline'
export default {
name: 'timeline-page',
components: {
'timeline': Timeline,
}
}
</script>
<style>
</style>

View File

@@ -10,8 +10,6 @@ import SpellSingle from "~/pages/spells/single-spell-page"
import Schools from "./pages/schools/schools-page"
import SchoolSingle from "~/pages/schools/single-school-page"
import Timeline from "./pages/timelines/timeline-page"
import Login from "~/pages/user/login-page"
import Register from "~/pages/user/register-page"
import Profile from "~/pages/user/profile-page"
@@ -58,10 +56,6 @@ const routes = [
component: SchoolSingle,
props: true,
},
{
path: '/ages',
component: Timeline,
},
{
path: '/profil',
component: Profile,

View File

@@ -7,14 +7,5 @@ module.exports = {
"~": path.resolve(__dirname, 'src/')
}
}
},
css: {
loaderOptions: {
scss: {
prependData: `
@import "@/assets/scss/_variables.scss";
`
}
}
}
};

View File

@@ -146,12 +146,12 @@
}
},
"bcrypt": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.0.tgz",
"integrity": "sha512-jB0yCBl4W/kVHM2whjfyqnxTmOHkCX4kHEa5nYKSoGeYe8YrjTYTc87/6bwt1g8cmV0QrbhKriETg9jWtcREhg==",
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-4.0.1.tgz",
"integrity": "sha512-hSIZHkUxIDS5zA2o00Kf2O5RfVbQ888n54xQoF/eIaquU4uaLxK8vhhBdktd0B3n2MjkcAWzv4mnhogykBKOUQ==",
"requires": {
"node-addon-api": "^3.0.0",
"node-pre-gyp": "0.15.0"
"node-addon-api": "^2.0.0",
"node-pre-gyp": "0.14.0"
}
},
"bignumber.js": {
@@ -1311,9 +1311,9 @@
}
},
"lodash": {
"version": "4.17.19",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
"integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
"version": "4.17.15",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
},
"lodash.includes": {
"version": "4.3.0",
@@ -1570,18 +1570,18 @@
"integrity": "sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q=="
},
"node-addon-api": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.0.0.tgz",
"integrity": "sha512-sSHCgWfJ+Lui/u+0msF3oyCgvdkhxDbkCS6Q8uiJquzOimkJBvX6hl5aSSA7DR1XbMpdM8r7phjcF63sF4rkKg=="
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.0.tgz",
"integrity": "sha512-ASCL5U13as7HhOExbT6OlWJJUV/lLzL2voOSP1UVehpRD8FbSrSDjfScK/KwAvVTI5AS6r4VwbOMlIqtvRidnA=="
},
"node-pre-gyp": {
"version": "0.15.0",
"resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.15.0.tgz",
"integrity": "sha512-7QcZa8/fpaU/BKenjcaeFF9hLz2+7S9AqyXFhlH/rilsQ/hPZKK32RtR5EQHJElgu+q5RfbJ34KriI79UWaorA==",
"version": "0.14.0",
"resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz",
"integrity": "sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==",
"requires": {
"detect-libc": "^1.0.2",
"mkdirp": "^0.5.3",
"needle": "^2.5.0",
"mkdirp": "^0.5.1",
"needle": "^2.2.1",
"nopt": "^4.0.1",
"npm-packlist": "^1.1.6",
"npmlog": "^4.0.2",

View File

@@ -4,7 +4,8 @@
"description": "API for Auracle database",
"main": "index.js",
"scripts": {
"run": "node index.js"
"api": "node index.js",
"client": "cd client && npm run serve"
},
"repository": {
"type": "git",
@@ -27,7 +28,7 @@
},
"homepage": "https://github.com/AlexisNP/spellsaurus#readme",
"dependencies": {
"bcrypt": "^5.0.0",
"bcrypt": "^4.0.1",
"bookshelf": "^1.1.1",
"cors": "^2.8.5",
"dotenv": "^8.2.0",

View File

@@ -26,6 +26,8 @@ class SpellRepository {
let query = model.forge()
console.log("science")
if (name) { query.where('name', 'like', `%${name}%`) }
if (description) { query.where('description', 'like', `%${description}%`) }
if (level) { query.where({ 'level' : level }) }