├── LICENSE
├── README.md
├── README_PAGES.md
├── certificate
├── .eslintrc.js
├── .gitignore
├── .prettierrc.js
├── README.md
├── debug.log
├── netlify.toml
├── package-lock.json
├── package.json
├── public
│ ├── erro404.gif
│ ├── estrelas.png
│ ├── favicon.ico
│ ├── index.html
│ ├── logo192.png
│ ├── logo512.png
│ ├── logo_texto_cinza.png
│ ├── manifest.json
│ ├── robots.txt
│ ├── stars.png
│ ├── start.png
│ └── wallpaper-certificate.png
├── src
│ ├── App.js
│ ├── App.test.js
│ ├── assets
│ │ ├── img
│ │ │ ├── erro404.gif
│ │ │ ├── logo_negativo.png
│ │ │ ├── logo_texto_branco.png
│ │ │ ├── logo_texto_cinza.png
│ │ │ ├── logo_texto_preto.png
│ │ │ ├── wallpaper-home.jpg
│ │ │ └── womakerscode-oficina.jpg
│ │ ├── model_certificate.png
│ │ ├── stars.png
│ │ ├── wallpaper-certificate.png
│ │ ├── wallpaper-info-event.jpg
│ │ ├── wallpaper-info-event.png
│ │ ├── wallpaper-section.jpg
│ │ └── wallpaper-section.jpg.png
│ ├── components
│ │ ├── cards
│ │ │ ├── index.js
│ │ │ └── style.css
│ │ ├── footer
│ │ │ ├── footer.css
│ │ │ └── index.js
│ │ ├── form-login
│ │ │ ├── index.js
│ │ │ └── style.css
│ │ ├── form-register
│ │ │ ├── index.js
│ │ │ ├── style-google.css
│ │ │ └── styles.css
│ │ ├── header
│ │ │ ├── index.js
│ │ │ └── style.css
│ │ ├── info-event
│ │ │ ├── index.js
│ │ │ └── style.css
│ │ ├── list-events
│ │ │ ├── index.js
│ │ │ ├── style-digital-assinature.css
│ │ │ ├── style-form-event.css
│ │ │ ├── styles-events.css
│ │ │ └── styles.css
│ │ ├── list-presents
│ │ │ ├── index.js
│ │ │ ├── style-certificate.css
│ │ │ ├── style-spinkit.css
│ │ │ └── style.css
│ │ ├── menu-1-header
│ │ │ ├── index.js
│ │ │ └── style.css
│ │ ├── menu-1
│ │ │ ├── index.js
│ │ │ └── style.css
│ │ ├── message-alert
│ │ │ ├── index.js
│ │ │ └── style.css
│ │ ├── model-certificate-home
│ │ │ ├── index.js
│ │ │ └── style.css
│ │ ├── profile-card
│ │ │ ├── index.js
│ │ │ └── style.css
│ │ ├── section
│ │ │ ├── index.js
│ │ │ └── style.css
│ │ └── steps
│ │ │ ├── index.js
│ │ │ └── style.css
│ ├── index.css
│ ├── index.js
│ ├── logo.svg
│ ├── pages
│ │ ├── home
│ │ │ └── index.js
│ │ ├── list-of-events
│ │ │ └── index.js
│ │ ├── page-confirmation
│ │ │ └── index.js
│ │ ├── page-not-found
│ │ │ ├── index.js
│ │ │ └── style.css
│ │ ├── profile
│ │ │ └── index.js
│ │ ├── sign-in
│ │ │ └── index.js
│ │ └── sign-up
│ │ │ ├── index.js
│ │ │ └── styles.css
│ ├── routes.js
│ ├── serviceWorker.js
│ ├── services
│ │ ├── events.json
│ │ ├── participantes.json
│ │ └── users.json
│ ├── setupTests.js
│ └── style
│ │ └── App.css
└── yarn.lock
└── layout.pptx
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 React-Bootcamp-WoMarkersCode
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | ## Desenvolvedoras :octocat:
6 |
7 | [ Bee Bones](https://github.com/beebones) |[ Chaiana Hermes](https://github.com/chaihermes) | [ Diana Regina](https://github.com/Diana-ops) | [ Rose Ahakawa](https://github.com/ahakawa) |
8 | | :---: | :---: | :---: | :---:
9 |
10 | > Status do Projeto: Concluido :heavy_check_mark:
11 |
12 | ### Tópicos
13 |
14 | :small_blue_diamond: [Descrição do projeto](#descrição-do-projeto-star)
15 |
16 | :small_blue_diamond: [O que a plataforma é capaz de fazer](#o-que-a-plataforma-é-capaz-de-fazer-checkered_flag)
17 |
18 | :small_blue_diamond: [Deploy da Aplicação com Netlify](#deploy-da-aplicação-com-netlify-dash)
19 |
20 | :small_blue_diamond: [Pré-requesitos](#pré-requesitos)
21 |
22 | :small_blue_diamond: [Como rodar a aplicação](#como-rodar-a-aplicação-arrow_forward)
23 |
24 | :small_blue_diamond: [JSON](#json-floppy_disk)
25 |
26 | :small_blue_diamond: [Páginas](#páginas)
27 |
28 | :small_blue_diamond: [CRUD](#crud)
29 |
30 | :small_blue_diamond: [Linguagens, dependencias e libs utilizadas ](#linguagens-dependencias-e-libs-utilizadas-books)
31 |
32 | :small_blue_diamond: [Dependência externa](#dependência-externa-incoming_envelope)
33 |
34 | ## Descrição do projeto :star:
35 |
36 |
37 | Desenvolver uma plataforma capaz de gerar certificados em PDF de eventos e cursos para enviá-los por e-mail aos participantes.
38 |
39 |
40 |
41 |
42 |
43 |
44 | ## O que a plataforma é capaz de fazer :checkered_flag:
45 |
46 | :trophy: Gerar PDF do certificado com as informações preenchidas no formulário para cada participantes para envio de e-mail
47 |
48 | :trophy: Check-list de participantes, permitindo selecionar quem irá receber os certificados
49 |
50 | :trophy: Permite que o organizador do evento escreva sua assinatura digital dentro da plataforma
51 |
52 | :trophy: Oferece layout responsivo
53 |
54 | :trophy: Cadastrar organizadores
55 |
56 | :trophy: Cadastrar eventos
57 |
58 | :trophy: Cadastrar participantes para cada evento
59 |
60 | ## Deploy da Aplicação com Netlify :dash:
61 |
62 | > https://certificates-for-everyone-womakerscode.netlify.app/
63 |
64 | ## Pré-requesitos
65 |
66 | :warning: [Node](https://nodejs.org/en/download/)
67 |
68 | :warning: [Yarn](https://classic.yarnpkg.com/pt-BR/docs/install/#windows-stable)
69 |
70 | ## Como rodar a aplicação :arrow_forward:
71 |
72 | No terminal, clone o projeto:
73 |
74 | ```
75 | git clone https://github.com/React-Bootcamp-WoMarkersCode/certificate-generator
76 | ```
77 |
78 | Entre na pasta do projeto:
79 |
80 | ```
81 | cd certificate-generator
82 | ```
83 |
84 | Instale as dependecias:
85 |
86 | ```
87 | yarn install
88 | ```
89 |
90 | Execute a aplicação:
91 |
92 | ```
93 | yarn start
94 | ```
95 |
96 | Pronto, agora é possível acessar a aplicação a partir da rota http://localhost:3000/
97 |
98 | ## JSON :floppy_disk:
99 |
100 | A nossa simulação de banco de dados foi feita com JSON. Foram separados um para [usuarios](https://github.com/React-Bootcamp-WoMarkersCode/certificate-generator/blob/DianaRegina/certificate/src/services/users.json), [participantes](https://github.com/React-Bootcamp-WoMarkersCode/certificate-generator/blob/DianaRegina/certificate/src/services/participantes.json) e [eventos](https://github.com/React-Bootcamp-WoMarkersCode/certificate-generator/blob/DianaRegina/certificate/src/services/events.json):
101 |
102 | ### Usuário:
103 |
104 | |name|email|password|token|avatar|
105 | | -------- |-------- |-------- |-------- |-------- |
106 | |Lais Lima|laislima98@hotmail.com|lais123|true|https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcS9-U_HbQAipum9lWln3APcBIwng7T46hdBA42EJv8Hf6Z4fDT3&usqp=CAU|
107 |
108 | ### Evento:
109 |
110 | |user|company|course|startDate|finishDate|workload|logo|
111 | | -------- |-------- |-------- |-------- |-------- |-------- |-------- |
112 | |Lais Lima|WomakersCode|Bootcamp React|01/02/2020|28/03/2020|56|https://miro.medium.com/max/478/1*jriufqYKgJTW4DKrBizU5w.png|https://upload.wikimedia.org/wikipedia/commons/7/7f/Assinatura_Jos%C3%A9_Saramago.png|
113 |
114 | ### Participante:
115 |
116 | |name|email|present|receiveCertificate|course|
117 | | -------- |-------- |-------- |-------- |-------- |
118 | |Chaiana Hermes|chaiana_hermes@yahoo.com.br|true|false|Bootcamp React|
119 |
120 | ## Páginas
121 |
122 | [Aqui](https://github.com/React-Bootcamp-WoMarkersCode/certificate-generator/blob/DianaRegina/README_PAGES.md) é possível visualizar a **proposta** de layout do projeto.
123 |
124 | ## CRUD
125 |
126 | ### Usuários
127 |
128 | :heavy_check_mark: O usuário pode ser **criado** na pagina Sign-up a partir de um formulário ou com uma conta existente no Google.
129 |
130 | :heavy_check_mark: Os dados do usuário podem ser **acessados** em Login e perfil.
131 |
132 | :heavy_check_mark: Os dados do usuário podem ser **atualizados** em seu perfil a partir de um formulário.
133 |
134 | :heavy_check_mark: A conta do usuário pode ser **deletada** em seu perfil.
135 |
136 | ### Eventos
137 |
138 | :heavy_check_mark: Podem ser **criados** a partir de um formulário na lista de eventos.
139 |
140 | :heavy_check_mark: Podem ser **acessados** na lista de eventos
141 |
142 | :heavy_check_mark: Podem ser **atualizados** na lista de eventos a partir de um formulário.
143 |
144 | :heavy_check_mark: Podem ser **deletados** na lista de eventos
145 |
146 | ### Participantes
147 |
148 | :heavy_check_mark: Podem ser **criados** a partir de um formulário na lista de participantes.
149 |
150 | :heavy_check_mark: Podem ser **acessados** em uma lista na lista de participantes.
151 |
152 | :heavy_check_mark: Podem ser **atualizados**, indicando se aquele participante poderá ou não receber um certificado na lista de participantes.
153 |
154 | :heavy_check_mark: Podem ser **deletados** na lista de participantes.
155 |
156 | ## Linguagens, dependencias e libs utilizadas :books:
157 |
158 | - [React](https://pt-br.reactjs.org/docs/create-a-new-react-app.html)
159 | - [React PDF](https://react-pdf.org/)
160 | - [React Router](https://reacttraining.com/react-router/web/guides/quick-start)
161 |
162 | Framework para layouts prontos:
163 | - [AntDesign](https://ant.design/docs/react/introduce)
164 |
165 | Autenticação com Google
166 | - [Login com Google](https://www.npmjs.com/package/react-google-login)
167 |
168 | Para mandar PDF por email
169 | - [jspdf](https://www.npmjs.com/package/jspdf)
170 |
171 | Para inserir HTML no corpo do email
172 | - [html2canvas](https://www.npmjs.com/package/html2canvas)
173 |
174 | Para desenvolver a assinatura digital:
175 |
176 | - [Reactjs-Popup](https://react-popup.elazizi.com/getting-started/)
177 | - [react-signature-canvas](https://www.npmjs.com/package/react-signature-canvas)
178 |
179 | Permite visualizar uma animação enquanto o usuário espera o e-mail ser enviado:
180 | - [React-Spinkit](https://github.com/KyleAMathews/react-spinkit)
181 |
182 | ## Dependência externa :incoming_envelope:
183 | [Server Mailjet](https://github.com/beebones/server-mailjet) - Back-end feito em **Golang** utiizado para consumir api **mailjet** e enviar os emails com o certificado.
184 |
185 |
--------------------------------------------------------------------------------
/README_PAGES.md:
--------------------------------------------------------------------------------
1 | ### Reference and Inspiration: [Site WoMakersCode](https://womakerscode.org/) and [Generate Certificate](https://geradordecertificados.com/)
2 |
3 | ## Pages
4 |
5 | - [ ] **Home:** Show the user a step by step on how to use the application, generate the certificate and send it to participants
6 |
7 | ### Layout
8 |
9 | 
10 |
11 | ### Thinking in Components
12 |
13 | 
14 |
15 | - [ ] **SingUp:** Page for the registration of users representing an institution (example: WoMakersCode). A form will be presented asking for information regarding the event:
16 |
17 | - email
18 | - password
19 |
20 | ### Layout and Thinking in Components
21 |
22 | 
23 |
24 | - [ ] **SingIn:** User login
25 |
26 | - email
27 | - password
28 |
29 | ### Layout and Thinking in Components
30 |
31 | 
32 |
33 | - [ ] **Profile:** list of user information, on this page he will have access:
34 |
35 | - edit and delete profile
36 | - return to your events
37 |
38 | ### Layout and Thinking in Components
39 |
40 | 
41 |
42 | - [ ] **Edit profile:** the user can edit his information
43 |
44 | ### Layout and Thinking in Components
45 |
46 | 
47 |
48 | - [ ] **List of Events:** the list of events will be presented, on this page he will have access:
49 |
50 | - the event CRUD (list, create, edit and delete)
51 | - go to your profile
52 | - send certificates
53 | - update the list of participants
54 |
55 | ### Layout and Thinking in Components
56 |
57 | 
58 |
59 | - [ ] **Create event:** a form will be presented asking for information regarding the event:
60 |
61 | - name of the institution
62 | - company logo
63 | - workload
64 | - start and end date
65 | - uploading the list of participants
66 | - digital signature
67 |
68 | ### Layout and Thinking in Components
69 |
70 | 
71 |
72 | - [ ] **Edit event:** the user can edit information about some event
73 |
74 | ### Layout and Thinking in Components
75 |
76 | 
77 |
78 | - [ ] **List Presents**: To show the list of participants of each event, with an option to check your present in event by user
79 |
80 | ### Layout and Thinking in Components
81 |
82 | 
83 |
84 | - [ ] **Confirm certificate to send:** The certificate template and a button will be shown so that it can confirm that it can be sent to participants
85 |
86 | ### Layout and Thinking in Components
87 |
88 | 
89 |
90 | - [ ] **Page of confirmation:** A confirmation message will be shown to the user to let them know that their action has been successfully performed for all participants
91 |
92 | ### Layout and Thinking in Components
93 |
94 | 
95 |
96 | - [ ] **Page not found:** if he tries to access a different page through the url, we could show an alert message
97 |
98 | ### Layout and Thinking in Components
99 |
100 | 
101 |
--------------------------------------------------------------------------------
/certificate/.eslintrc.js:
--------------------------------------------------------------------------------
1 |
2 | //Path: /.eslintrc.js
3 |
4 | module.exports = {
5 | extends: ['airbnb'],
6 | rules: {
7 | 'react/jsx-filename-extension': 'off',
8 | },
9 | };
--------------------------------------------------------------------------------
/certificate/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # production
12 | /build
13 |
14 | # misc
15 | .DS_Store
16 | .env.local
17 | .env.development.local
18 | .env.test.local
19 | .env.production.local
20 |
21 | npm-debug.log*
22 | yarn-debug.log*
23 | yarn-error.log*
24 |
--------------------------------------------------------------------------------
/certificate/.prettierrc.js:
--------------------------------------------------------------------------------
1 |
2 | //Path: /.prettierrc.js
3 |
4 | module.exports = {
5 | bracketSpacing: true,
6 | jsxBracketSameLine: true,
7 | singleQuote: true,
8 | trailingComma: 'all',
9 | };
--------------------------------------------------------------------------------
/certificate/README.md:
--------------------------------------------------------------------------------
1 | This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
2 |
3 | ## Available Scripts
4 |
5 | In the project directory, you can run:
6 |
7 | ### `yarn start`
8 |
9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
11 |
12 | The page will reload if you make edits.
13 | You will also see any lint errors in the console.
14 |
15 | ### `yarn test`
16 |
17 | Launches the test runner in the interactive watch mode.
18 | See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
19 |
20 | ### `yarn build`
21 |
22 | Builds the app for production to the `build` folder.
23 | It correctly bundles React in production mode and optimizes the build for the best performance.
24 |
25 | The build is minified and the filenames include the hashes.
26 | Your app is ready to be deployed!
27 |
28 | See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
29 |
30 | ### `yarn eject`
31 |
32 | **Note: this is a one-way operation. Once you `eject`, you can’t go back!**
33 |
34 | If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
35 |
36 | Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
37 |
38 | You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
39 |
40 | ## Learn More
41 |
42 | You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
43 |
44 | To learn React, check out the [React documentation](https://reactjs.org/).
45 |
46 | ### Code Splitting
47 |
48 | This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting
49 |
50 | ### Analyzing the Bundle Size
51 |
52 | This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size
53 |
54 | ### Making a Progressive Web App
55 |
56 | This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app
57 |
58 | ### Advanced Configuration
59 |
60 | This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration
61 |
62 | ### Deployment
63 |
64 | This section has moved here: https://facebook.github.io/create-react-app/docs/deployment
65 |
66 | ### `yarn build` fails to minify
67 |
68 | This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify
69 |
--------------------------------------------------------------------------------
/certificate/debug.log:
--------------------------------------------------------------------------------
1 | [0404/170300.775:ERROR:settings.cc(320)] Settings magic is not 1129342067
2 | [0415/192638.171:ERROR:settings.cc(320)] Settings magic is not 1129342067
3 |
--------------------------------------------------------------------------------
/certificate/netlify.toml:
--------------------------------------------------------------------------------
1 | [build]
2 | command = "yarn build" # the command you run to build this file
3 | functions = "built-lambda" # netlify-lambda builds to this folder AND Netlify reads functions from here
4 | publish = "build" # create-react-app builds to this folder, Netlify should serve all these files statically
--------------------------------------------------------------------------------
/certificate/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "certificate",
3 | "version": "0.1.0",
4 | "private": true,
5 | "dependencies": {
6 | "@react-pdf/renderer": "^1.6.8",
7 | "@testing-library/jest-dom": "^4.2.4",
8 | "@testing-library/react": "^9.3.2",
9 | "@testing-library/user-event": "^7.1.2",
10 | "antd": "^4.1.2",
11 | "formik": "^2.1.4",
12 | "html2canvas": "^1.0.0-rc.5",
13 | "jspdf": "^1.5.3",
14 | "netlify-cli": "^2.46.0",
15 | "react": "^16.13.1",
16 | "react-dom": "^16.13.1",
17 | "react-google-login": "^5.1.3",
18 | "react-router-dom": "^5.1.2",
19 | "react-scripts": "3.4.0",
20 | "react-signature-canvas": "^1.0.3",
21 | "react-spinkit": "^3.0.0",
22 | "reactjs-popup": "^1.5.0",
23 | "tachyon": "^0.0.11",
24 | "yup": "^0.28.3"
25 | },
26 | "scripts": {
27 | "start": "react-scripts start",
28 | "build": "run-p build:**",
29 | "test": "react-scripts test",
30 | "eject": "react-scripts eject",
31 | "start:lambda": "netlify-lambda serve src/lambda",
32 | "build:app": "react-scripts build",
33 | "build:lambda": "netlify-lambda build src/lambda"
34 | },
35 | "eslintConfig": {
36 | "extends": "react-app"
37 | },
38 | "browserslist": {
39 | "production": [
40 | ">0.2%",
41 | "not dead",
42 | "not ie <= 11",
43 | "not op_mini all"
44 | ],
45 | "development": [
46 | "last 1 chrome version",
47 | "last 1 firefox version",
48 | "last 1 safari version"
49 | ]
50 | },
51 | "devDependencies": {
52 | "eslint": "^6.8.0",
53 | "eslint-config-airbnb": "^18.1.0",
54 | "husky": "^4.2.5",
55 | "lint-staged": "^10.1.3",
56 | "prettier": "^2.0.4",
57 | "react-redux": "^7.2.0",
58 | "redux": "^4.0.5",
59 | "tachyons": "^4.10.0",
60 | "netlify-lambda": "^1.4.5",
61 | "npm-run-all": "^4.1.5"
62 | },
63 | "husky": {
64 | "hooks": {
65 | "pre-commit": "lint-staged"
66 | }
67 | },
68 | "lint-staged": {
69 | "./src/*.{js,jsx,ts,tsx}": [
70 | "npx prettier --write",
71 | "eslint src/*.js --fix-dry-run"
72 | ]
73 | }
74 | }
75 |
--------------------------------------------------------------------------------
/certificate/public/erro404.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/React-Bootcamp-WoMarkersCode/certificate-generator/6d8d576a1afabe735c9104400f866b19b9cdc9ed/certificate/public/erro404.gif
--------------------------------------------------------------------------------
/certificate/public/estrelas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/React-Bootcamp-WoMarkersCode/certificate-generator/6d8d576a1afabe735c9104400f866b19b9cdc9ed/certificate/public/estrelas.png
--------------------------------------------------------------------------------
/certificate/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/React-Bootcamp-WoMarkersCode/certificate-generator/6d8d576a1afabe735c9104400f866b19b9cdc9ed/certificate/public/favicon.ico
--------------------------------------------------------------------------------
/certificate/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
12 |
13 |
17 |
18 |
27 | Certificates for Everyone
28 |
29 |
30 |
31 |
32 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/certificate/public/logo192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/React-Bootcamp-WoMarkersCode/certificate-generator/6d8d576a1afabe735c9104400f866b19b9cdc9ed/certificate/public/logo192.png
--------------------------------------------------------------------------------
/certificate/public/logo512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/React-Bootcamp-WoMarkersCode/certificate-generator/6d8d576a1afabe735c9104400f866b19b9cdc9ed/certificate/public/logo512.png
--------------------------------------------------------------------------------
/certificate/public/logo_texto_cinza.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/React-Bootcamp-WoMarkersCode/certificate-generator/6d8d576a1afabe735c9104400f866b19b9cdc9ed/certificate/public/logo_texto_cinza.png
--------------------------------------------------------------------------------
/certificate/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | },
10 | {
11 | "src": "logo192.png",
12 | "type": "image/png",
13 | "sizes": "192x192"
14 | },
15 | {
16 | "src": "logo512.png",
17 | "type": "image/png",
18 | "sizes": "512x512"
19 | }
20 | ],
21 | "start_url": ".",
22 | "display": "standalone",
23 | "theme_color": "#000000",
24 | "background_color": "#ffffff"
25 | }
26 |
--------------------------------------------------------------------------------
/certificate/public/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/certificate/public/stars.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/React-Bootcamp-WoMarkersCode/certificate-generator/6d8d576a1afabe735c9104400f866b19b9cdc9ed/certificate/public/stars.png
--------------------------------------------------------------------------------
/certificate/public/start.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/React-Bootcamp-WoMarkersCode/certificate-generator/6d8d576a1afabe735c9104400f866b19b9cdc9ed/certificate/public/start.png
--------------------------------------------------------------------------------
/certificate/public/wallpaper-certificate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/React-Bootcamp-WoMarkersCode/certificate-generator/6d8d576a1afabe735c9104400f866b19b9cdc9ed/certificate/public/wallpaper-certificate.png
--------------------------------------------------------------------------------
/certificate/src/App.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import './style/App.css';
3 | import Routes from './routes'
4 |
5 | //Importado a biblioteca ant design
6 | import 'antd/dist/antd.css';
7 |
8 | //Importado a biblioteca tachyons
9 | import 'tachyons';
10 |
11 |
12 | function App() {
13 |
14 | return
15 | }
16 |
17 | export default App;
18 |
--------------------------------------------------------------------------------
/certificate/src/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { render } from '@testing-library/react';
3 | import App from './App';
4 |
5 | test('renders learn react link', () => {
6 | const { getByText } = render();
7 | const linkElement = getByText(/learn react/i);
8 | expect(linkElement).toBeInTheDocument();
9 | });
10 |
--------------------------------------------------------------------------------
/certificate/src/assets/img/erro404.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/React-Bootcamp-WoMarkersCode/certificate-generator/6d8d576a1afabe735c9104400f866b19b9cdc9ed/certificate/src/assets/img/erro404.gif
--------------------------------------------------------------------------------
/certificate/src/assets/img/logo_negativo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/React-Bootcamp-WoMarkersCode/certificate-generator/6d8d576a1afabe735c9104400f866b19b9cdc9ed/certificate/src/assets/img/logo_negativo.png
--------------------------------------------------------------------------------
/certificate/src/assets/img/logo_texto_branco.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/React-Bootcamp-WoMarkersCode/certificate-generator/6d8d576a1afabe735c9104400f866b19b9cdc9ed/certificate/src/assets/img/logo_texto_branco.png
--------------------------------------------------------------------------------
/certificate/src/assets/img/logo_texto_cinza.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/React-Bootcamp-WoMarkersCode/certificate-generator/6d8d576a1afabe735c9104400f866b19b9cdc9ed/certificate/src/assets/img/logo_texto_cinza.png
--------------------------------------------------------------------------------
/certificate/src/assets/img/logo_texto_preto.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/React-Bootcamp-WoMarkersCode/certificate-generator/6d8d576a1afabe735c9104400f866b19b9cdc9ed/certificate/src/assets/img/logo_texto_preto.png
--------------------------------------------------------------------------------
/certificate/src/assets/img/wallpaper-home.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/React-Bootcamp-WoMarkersCode/certificate-generator/6d8d576a1afabe735c9104400f866b19b9cdc9ed/certificate/src/assets/img/wallpaper-home.jpg
--------------------------------------------------------------------------------
/certificate/src/assets/img/womakerscode-oficina.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/React-Bootcamp-WoMarkersCode/certificate-generator/6d8d576a1afabe735c9104400f866b19b9cdc9ed/certificate/src/assets/img/womakerscode-oficina.jpg
--------------------------------------------------------------------------------
/certificate/src/assets/model_certificate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/React-Bootcamp-WoMarkersCode/certificate-generator/6d8d576a1afabe735c9104400f866b19b9cdc9ed/certificate/src/assets/model_certificate.png
--------------------------------------------------------------------------------
/certificate/src/assets/stars.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/React-Bootcamp-WoMarkersCode/certificate-generator/6d8d576a1afabe735c9104400f866b19b9cdc9ed/certificate/src/assets/stars.png
--------------------------------------------------------------------------------
/certificate/src/assets/wallpaper-certificate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/React-Bootcamp-WoMarkersCode/certificate-generator/6d8d576a1afabe735c9104400f866b19b9cdc9ed/certificate/src/assets/wallpaper-certificate.png
--------------------------------------------------------------------------------
/certificate/src/assets/wallpaper-info-event.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/React-Bootcamp-WoMarkersCode/certificate-generator/6d8d576a1afabe735c9104400f866b19b9cdc9ed/certificate/src/assets/wallpaper-info-event.jpg
--------------------------------------------------------------------------------
/certificate/src/assets/wallpaper-info-event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/React-Bootcamp-WoMarkersCode/certificate-generator/6d8d576a1afabe735c9104400f866b19b9cdc9ed/certificate/src/assets/wallpaper-info-event.png
--------------------------------------------------------------------------------
/certificate/src/assets/wallpaper-section.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/React-Bootcamp-WoMarkersCode/certificate-generator/6d8d576a1afabe735c9104400f866b19b9cdc9ed/certificate/src/assets/wallpaper-section.jpg
--------------------------------------------------------------------------------
/certificate/src/assets/wallpaper-section.jpg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/React-Bootcamp-WoMarkersCode/certificate-generator/6d8d576a1afabe735c9104400f866b19b9cdc9ed/certificate/src/assets/wallpaper-section.jpg.png
--------------------------------------------------------------------------------
/certificate/src/components/cards/index.js:
--------------------------------------------------------------------------------
1 | /*Este componente está destinado a construção dos 6 cards da pagina Home*/
2 | /*Estou usando o Antd para me auxiliar na construção e layout*/
3 |
4 | import React from 'react'
5 | import { Card } from 'antd';
6 | import 'antd/dist/antd.css';
7 | import './style.css'
8 |
9 | function Cards(props) {
10 |
11 | return (
12 |
13 |
Descubra o que o nosso Gerador de Certificados pode fazer por você
14 |
15 |
16 |
17 |
18 | Envie quantos certificados você precisar.
19 |
20 |
21 |
22 | Envie o certificado de cada participante por e-mail.
23 |
24 |
25 |
26 | Cadastre seus participantes para cada evento e selecione quem irá receber os certificados em nosso check-list.
27 |
28 |
29 |
30 | Escreva sua assinatura digital em nosso Pad para os seus certificados.
31 |
32 |
33 |
34 | Crie uma conta para você ou sua comunidade e gere certificados para seus eventos e cursos.
35 |
36 |
37 | Registre seus eventos/cursos e gere os certificados quando for melhor para você e envie a hora que quiser.
38 |
39 |
40 |
325 | {toEditFormEvent &&
326 | // Mostra na tela o formulário com os campos para serem editados
327 | //o value está trazendo as informações do último cadastrado "Lucas...."
328 | //quando eu troco o nome do course (Evento), altera o nome dos 3 eventos que estão sendo mostrados na tela
329 |
311 | Click para enviar certificados para todos os participantes}>
312 |
313 |
314 |
315 | Click para cancelar a presença de todos os participantes}>
316 |
317 |
318 |
319 |
320 |
321 |
322 |
323 |
324 | { loadingEmail &&
325 |
326 |
327 |
}
328 |
329 |
330 |
331 |
332 |
A comunidade {evento.company} confere ao participante {thisParticipante.name} o presente certificado
333 | referente a sua participação no evento {evento.course} realizado do
334 | dia {evento.startDate} ao {evento.finishDate}, com carga horaria de {evento.workload} horas.
335 |
336 |