Browse Source

added JenkinsFile

master
flashlan 4 years ago
parent
commit
c0de75ccd6
  1. 26
      JenkinsFile
  2. 31
      package-lock.json
  3. 1
      package.json
  4. 18
      src/assets/css/Main.css
  5. 2
      src/assets/css/index.css
  6. 2
      src/components/BetaForm.js
  7. 18
      src/components/Contact.js
  8. 41
      src/components/Main.js
  9. 14
      yarn.lock

26
JenkinsFile

@ -0,0 +1,26 @@
pipeline {
agent { label 'Ubuntu18-openjdk1.8'}
environment {
CI = 'true'
}
stages {
stage('Build') {
steps {
sh 'npm install'
}
}
stage('Test') {
steps {
sh './jenkins/scripts/test.sh'
}
}
stage('Deliver') {
steps {
sh './jenkins/scripts/deliver.sh'
input message: 'Finished using the web site? (Click "Proceed" to continue)'
sh './jenkins/scripts/kill.sh'
}
}
}
}

31
package-lock.json

@ -14,6 +14,7 @@
"@testing-library/jest-dom": "^5.11.4", "@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.1.0", "@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10", "@testing-library/user-event": "^12.1.10",
"aos": "^3.0.0-beta.6",
"font-awesome": "^4.7.0", "font-awesome": "^4.7.0",
"mdbreact": "^5.1.0", "mdbreact": "^5.1.0",
"node-sass": "^4.14.1", "node-sass": "^4.14.1",
@ -4135,6 +4136,16 @@
"node": ">= 8" "node": ">= 8"
} }
}, },
"node_modules/aos": {
"version": "3.0.0-beta.6",
"resolved": "https://registry.npmjs.org/aos/-/aos-3.0.0-beta.6.tgz",
"integrity": "sha512-VLWrpq8bfAWcetynVHMMrqdC+89Qq/Ym6UBJbHB4crIwp3RR8uq1dNGgsFzoDl03S43rlVMK+na3r5+oUCZsYw==",
"dependencies": {
"classlist-polyfill": "^1.2.0",
"lodash.debounce": "^4.0.8",
"lodash.throttle": "^4.1.1"
}
},
"node_modules/aproba": { "node_modules/aproba": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
@ -5856,6 +5867,11 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/classlist-polyfill": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/classlist-polyfill/-/classlist-polyfill-1.2.0.tgz",
"integrity": "sha1-k1vC39lFiodrJ5YXUUY4vKqWSi4="
},
"node_modules/classnames": { "node_modules/classnames": {
"version": "2.2.6", "version": "2.2.6",
"resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz",
@ -26951,6 +26967,16 @@
"picomatch": "^2.0.4" "picomatch": "^2.0.4"
} }
}, },
"aos": {
"version": "3.0.0-beta.6",
"resolved": "https://registry.npmjs.org/aos/-/aos-3.0.0-beta.6.tgz",
"integrity": "sha512-VLWrpq8bfAWcetynVHMMrqdC+89Qq/Ym6UBJbHB4crIwp3RR8uq1dNGgsFzoDl03S43rlVMK+na3r5+oUCZsYw==",
"requires": {
"classlist-polyfill": "^1.2.0",
"lodash.debounce": "^4.0.8",
"lodash.throttle": "^4.1.1"
}
},
"aproba": { "aproba": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
@ -28356,6 +28382,11 @@
} }
} }
}, },
"classlist-polyfill": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/classlist-polyfill/-/classlist-polyfill-1.2.0.tgz",
"integrity": "sha1-k1vC39lFiodrJ5YXUUY4vKqWSi4="
},
"classnames": { "classnames": {
"version": "2.2.6", "version": "2.2.6",
"resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz",

1
package.json

@ -9,6 +9,7 @@
"@testing-library/jest-dom": "^5.11.4", "@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.1.0", "@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10", "@testing-library/user-event": "^12.1.10",
"aos": "^3.0.0-beta.6",
"font-awesome": "^4.7.0", "font-awesome": "^4.7.0",
"mdbreact": "^5.1.0", "mdbreact": "^5.1.0",
"node-sass": "^4.14.1", "node-sass": "^4.14.1",

18
src/assets/css/Main.css

@ -46,6 +46,7 @@ header {
position: relative; position: relative;
font-family: Lato; font-family: Lato;
margin-left: 30px; margin-left: 30px;
color: white;
} }
header div { header div {
@ -101,9 +102,11 @@ main {
} }
h2 { h2 {
color: white;
font-size: 45px; font-size: 45px;
margin-bottom: 120px; margin-bottom: 100px;
text-align: center; text-align: center;
width: 100%;
} }
h3 { h3 {
@ -119,7 +122,7 @@ h3 {
.service-container { .service-container {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: space-between; justify-content: space-around;
align-items: center; align-items: center;
margin: 40px 0px 180px 0px; margin: 40px 0px 180px 0px;
position: relative; position: relative;
@ -135,7 +138,15 @@ h3 {
-webkit-box-shadow: 0px 0px 53px rgba(0, 0, 0, 0.75); -webkit-box-shadow: 0px 0px 53px rgba(0, 0, 0, 0.75);
-moz-box-shadow: 0pc 0px 53px -19px rgba(0, 0, 0, 0.75); -moz-box-shadow: 0pc 0px 53px -19px rgba(0, 0, 0, 0.75);
box-shadow: 0px 0px 52px -19px rgba(0, 0, 0, 0.75); box-shadow: 0px 0px 52px -19px rgba(0, 0, 0, 0.75);
/* transform: translateX(-100%);
-webkit-transform: translateX(-100%);
animation: slide-in 0.5s forwards;
-webkit-animation: slide-in 0.5s forwards; */
} }
/* @keyframes slide-in {
100% { transform: translateX(0%); }
} */
.service-description{ .service-description{
width: 48%; width: 48%;
@ -145,6 +156,9 @@ h3 {
width: 80%; width: 80%;
margin: 0 auto; margin: 0 auto;
text-align: center; text-align: center;
margin-bottom: 280px;
color: white;
} }
.newsletter * { .newsletter * {

2
src/assets/css/index.css

@ -4,11 +4,11 @@ html{
background: linear-gradient(300deg,#1a4974,#0b3965,#1b63a9); background: linear-gradient(300deg,#1a4974,#0b3965,#1b63a9);
background-size: 180% 180%; background-size: 180% 180%;
animation: gradient-animation 15s ease infinite; animation: gradient-animation 15s ease infinite;
color: white;
} }
body { body {
margin:0; margin:0;
padding: 0px; padding: 0px;
font-family: Lato; font-family: Lato;
-webkit-font-smoothing: antialised; -webkit-font-smoothing: antialised;

2
src/components/BetaForm.js

@ -11,7 +11,7 @@ const options = [
function BetaForm() { function BetaForm() {
return( return(
<div className="main"> <div data-aos="fade-up" className="main">
<div className="center"> <div className="center">
<div className="menu"> <div className="menu">
<div className="logo"> <div className="logo">

18
src/components/Contact.js

@ -12,18 +12,30 @@ const Contact = () => {
const [title, setTitle] = useState(""); const [title, setTitle] = useState("");
const [content, setContent] = useState(""); const [content, setContent] = useState("");
const[contactEmail, setContactEmail] = useStates(""); const[contactEmail, setContactEmail] = useState("");
const sendEmail = async() => {
e.preventDefault();
console.log("sending email");
}
return( return(
<React.Fragment> <React.Fragment>
<button className="back" onClick={goback}> &larr; Go Back</button> <button className="back" onClick={goBack}> &larr; Go Back</button>
<form className="contact" onSubmit={sendEmail}> <form className="contact" onSubmit={sendEmail}>
<h2> Envie uma mensagem para ajudar-nos a construir o melhor software gerenciador de Bibliotecas</h2> <h2> Envie uma mensagem para ajudar-nos a construir o melhor software gerenciador de Bibliotecas</h2>
<label htmlFor="title"> Message Title: </label> <label htmlFor="title"> Message Title: </label>
<input type="text" name="title" onChange={(e) => setTitle(e.target.value)} /> <input type="text" name="title" onChange={(e) => setTitle(e.target.value)} />
<label htmlFor="content">Message Content: </label>
<textarea name="content" onChange={(e) => setContent(e.target.value)} />
<label htmlFor="email">Contact Email: </label>
<input type="email" name="email" onChange={(e) => setContactEmail(e.target.value)} />
<input type="submit" value="Send Message" />>
</form> </form>
</React.Fragment> </React.Fragment>
) )
@ -31,3 +43,5 @@ const Contact = () => {
} }
export default Contact;

41
src/components/Main.js

@ -3,7 +3,13 @@ import Template from "../assets/images/Template1.svg";
import { Link, useHistory } from "react-router-dom"; import { Link, useHistory } from "react-router-dom";
import "../assets/css/Main.css"; import "../assets/css/Main.css";
import AOS from 'aos';
import 'aos/dist/aos.css';
const Main = () => { const Main = () => {
AOS.init({ duration: 2000});
const [joined, setJoined] = useState(""); const [joined, setJoined] = useState("");
const history = useHistory(); const history = useHistory();
@ -19,47 +25,50 @@ const Main = () => {
} }
return ( return (
<React.Fragment> <React.Fragment>
<header> <header>
<img src={Template} /> <img src={Template} />
<div> <div data-aos="fade-right">
<h1>Estamos Produzindo Software <br />Gerenciador de Bibliotecas: </h1> <h1>Estamos Produzindo o <br />Melhor Software <br />Gerenciador de Bibliotecas </h1>
<p> Librography é um gerenciador para Bibliotecas e colecões particulares de Livros</p> <p> Librography é um gerenciador completo para bibliotecas e pode ser usado grátis para colecões particulares de livros e pequenas bibliotecas com ate 3 mil volumes.</p>
<Link to="/subscribe">Fique por dentro!</Link> <Link to="/contact">Contato</Link>
</div> </div>
</header> </header>
<main> <main>
<section className="services"> <section className="services">
<h2>Serviços</h2> <h2>Recursos</h2>
<div className="service-container"> <div className="service-container">
<div className="service-card service-one"></div> <div data-aos="slide-right" className="service-card service-one"></div>
<div className="service-description"> <div data-aos="slide-left"className="service-description">
<h3>Gerenciamento avançado</h3> <h3>Gerenciamento avançado</h3>
<div>* Controle de Funcionários com diversos níveis de acesso: Administrador, Atendente, Manutençao, Pesquisador.<br /> * Cadastro de estudantes e Professores. <br /> * Suporte a capas de Libros. <br /> * Consulta por Nome, ISBN, Autor, etc.<br /> * Recurso de localização do local do livro no Bibliotace(Piso, Corredor, Seção, Estante).<br /> * Suporte integrado para confecção de cartão/crachá de Estudante ou Professor. <br /> * Impressão de tickets e multas por atraso. <br /> * Suporte a leitor de código barras(ISBN) e QrCodes(Tickets de empréstimo)<br /> * Exportação de dados para planilhas .Xlsx.<br /> * 3 Modos disponíveis: Cliente/Servidor/Qiosque de consulta<br /> * Cadastro de Fornecedores.<br /> * Integração para registro ISBN*.<br /> * Suporte a protocolo Z39.50</div> <div>* Controle de Funcionários com diversos níveis de acesso: Administrador, Atendente, Manutençao, Pesquisador.<br /> * Cadastro de estudantes e Professores. <br /> * Suporte a capas de Libros. <br /> * Consulta por Nome, ISBN, Autor, etc.<br /> * Recurso de localização do local do livro no Bibliotace(Piso, Corredor, Seção, Estante).<br /> * Suporte integrado para confecção de cartão/crachá de Estudante ou Professor. <br /> * Impressão de tickets e multas por atraso. <br /> * Suporte a leitor de código barras(ISBN) e QrCodes(Tickets de empréstimo)<br /> * Exportação de dados para planilhas .Xlsx.<br /> * 3 Modos disponíveis: Cliente/Servidor/Qiosque de consulta<br /> * Cadastro de Fornecedores.<br /> * Integração para registro ISBN*.<br /> * Suporte a protocolo Z39.50</div>
</div> </div>
</div> </div>
<div className="service-container"> <div className="service-container">
<div className="service-card service-two"></div> <div data-aos="slide-right" className="service-card service-two"></div>
<div className="service-description"> <div data-aos="slide-left" className="service-description">
<h3>Interface Intuitiva</h3> <h3>Interface Intuitiva</h3>
<div>bla vblal lblxlvsl lsdlf sldflsdl sdlf osdf lsd flslssdflsdfls flsd flsd f</div> <div>bla vblal lblxlvsl lsdlf sldflsdl sdlf osdf lsd flslssdflsdfls flsd flsd f</div>
</div> </div>
</div> </div>
<div className="service-container"> <div className="service-container">
<div className="service-card service-three"></div> <div data-aos="slide-right" className="service-card service-three"></div>
<div className="service-description"> <div data-aos="slide-left" className="service-description">
<h3>Interface Intuitiva</h3> <h3>Interface Intuitiva</h3>
<div>bla vblal lblxlvsl lsdlf sldflsdl sdlf osdf lsd flslssdflsdfls flsd flsd f</div> <div>bla vblal lblxlvsl lsdlf sldflsdl sdlf osdf lsd flslssdflsdfls flsd flsd f</div>
</div> </div>
</div> </div>
<div className="service-container"> <div className="service-container">
<div className="service-card service-four"></div> <div data-aos="slide-right" className="service-card service-four"></div>
<div className="service-description"> <div data-aos="slide-left" className="service-description">
<h3>Interface Intuitiva</h3> <h3>Interface Intuitiva</h3>
<div>* Temas Light/Dark<br /> * Consulta intuitiva de histórico<br /> *</div> <div>* Temas Light/Dark<br /> * Consulta intuitiva de histórico<br /> *</div>
</div> </div>
@ -67,11 +76,11 @@ const Main = () => {
</section> </section>
<section> <section data-aos="slide-up">
<h2>Join our NewsLetter to get latest trends.</h2> <h2>Receba as novidades sobre nosso produtos direto em seu email.</h2>
<form className="newsletter" onSubmit={join}> <form className="newsletter" onSubmit={join}>
<input type="email" placeholder="Your Email gos here" onChange={(e) => setJoined(e.target.value)} /> <input type="email" placeholder="Insira seu email" onChange={(e) => setJoined(e.target.value)} />
<input type="submit" value="Join Now!" /> <input type="submit" value="Join Now!" />
</ form> </ form>

14
yarn.lock

@ -2688,6 +2688,15 @@
"normalize-path" "^3.0.0" "normalize-path" "^3.0.0"
"picomatch" "^2.0.4" "picomatch" "^2.0.4"
"aos@^3.0.0-beta.6":
"integrity" "sha512-VLWrpq8bfAWcetynVHMMrqdC+89Qq/Ym6UBJbHB4crIwp3RR8uq1dNGgsFzoDl03S43rlVMK+na3r5+oUCZsYw=="
"resolved" "https://registry.npmjs.org/aos/-/aos-3.0.0-beta.6.tgz"
"version" "3.0.0-beta.6"
dependencies:
"classlist-polyfill" "^1.2.0"
"lodash.debounce" "^4.0.8"
"lodash.throttle" "^4.1.1"
"aproba@^1.0.3", "aproba@^1.1.1": "aproba@^1.0.3", "aproba@^1.1.1":
"integrity" "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" "integrity" "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
"resolved" "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" "resolved" "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz"
@ -3795,6 +3804,11 @@
"isobject" "^3.0.0" "isobject" "^3.0.0"
"static-extend" "^0.1.1" "static-extend" "^0.1.1"
"classlist-polyfill@^1.2.0":
"integrity" "sha1-k1vC39lFiodrJ5YXUUY4vKqWSi4="
"resolved" "https://registry.npmjs.org/classlist-polyfill/-/classlist-polyfill-1.2.0.tgz"
"version" "1.2.0"
"classnames@^2.2.5", "classnames@^2.2.6", "classnames@2.2.6": "classnames@^2.2.5", "classnames@^2.2.6", "classnames@2.2.6":
"integrity" "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" "integrity" "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q=="
"resolved" "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz" "resolved" "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz"

Loading…
Cancel
Save