Merge remote-tracking branch 'origin/master' into zmiguel

This commit is contained in:
José Valdiviesso 2019-03-01 21:32:30 +00:00
commit 96aff3f875
35 changed files with 11898 additions and 505 deletions

View File

@ -149,6 +149,7 @@ android {
}
dependencies {
compile project(':react-native-device-info')
compile project(':react-native-material-shadows')
compile project(':react-native-linear-gradient')
compile project(':react-native-camera')

View File

@ -3,6 +3,7 @@ package com.app;
import android.app.Application;
import com.facebook.react.ReactApplication;
import com.learnium.RNDeviceInfo.RNDeviceInfo;
import ui.materialshadows.RNMaterialShadowsPackage;
import com.BV.LinearGradient.LinearGradientPackage;
import org.reactnative.camera.RNCameraPackage;
@ -28,6 +29,7 @@ public class MainApplication extends Application implements ReactApplication {
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new RNDeviceInfo(),
new RNMaterialShadowsPackage(),
new LinearGradientPackage(),
new RNCameraPackage(),

View File

@ -1,4 +1,6 @@
rootProject.name = 'app'
include ':react-native-device-info'
project(':react-native-device-info').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-device-info/android')
include ':react-native-material-shadows'
project(':react-native-material-shadows').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-material-shadows/android')
include ':react-native-linear-gradient'

View File

@ -40,12 +40,16 @@ const SCREEN_HEIGHT = Dimensions.get("window").height;
const SCREEN_WIDTH = Dimensions.get("window").width;
import Swiper from 'react-native-swiper';
var TimerMixin = require('react-timer-mixin');
function handleConnectivityChange() {
console.log("asdasd");
}
class App extends Component {
handleConnectivityChange = isConnected => {
this.setState({ isConnected });
}
_activate=()=>{
this.setState({ isModalVisible: !this.state.isModalVisible});
@ -84,8 +88,9 @@ class App extends Component {
username:'QR code',
failedAttempt: false,
push:4,
UI_loginScannerActive:false
UI_loginScannerActive:false,
userDetails:{username:'', password:''},
isConnected: true
};
}
@ -102,19 +107,19 @@ class App extends Component {
componentDidMount() {
NetInfo.isConnected.addEventListener('connectionChange', this.handleConnectivityChange);
this.props.hold();
NetInfo.isConnected.addEventListener('connectionChange', this.handleConnectivityChange);
this.setState({isModalVisible: false})
//verifica se o utilizador tem token guardado
this.props.checkUser();
this.props.checkUser(this.props.userDetails);
this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this._keyboardDidShow);
this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this._keyboardDidHide);
}
componentWillUnmount() {
NetInfo.isConnected.removeEventListener('connectionChange', this.handleConnectivityChange);
NetInfo.isConnected.removeEventListener('connectionChange', this.handleConnectivityChange);
}
_keyboardDidShow () {
@ -130,9 +135,9 @@ class App extends Component {
}
onSuccess = (e) => {
// this.setState({ isModalVisible: !this.state.isModalVisible });
// this.props.login(e.data, 'f8908cc0');
this.props.closeLoginQRScan();
// this.setState({ isModalVisible: !this.state.isModalVisible });
// this.props.login(e.data, 'f8908cc0');
this.props.closeLoginQRScan();
this.setState({username:e.data})
console.log("QR code lido");
@ -142,8 +147,14 @@ class App extends Component {
};
render() {
if (!this.props.logged) {
if (!this.state.isConnected) {
return (
<View>
<Text>cenas da vida</Text>
</View>
);
}
if (!this.props.logged && this.props.onHold) {
return (
@ -530,7 +541,8 @@ mapStateToProps = (state, props) => {
onHold: state.apiReducer.onHold,
logged: state.apiReducer.logged,
failedAttempt:state.apiReducer.failedAttempt,
UI_loginScannerActive: state.uiReducer.UI_loginScannerActive
UI_loginScannerActive: state.uiReducer.UI_loginScannerActive,
userDetails: state.apiReducer.userDetails,
}
};

View File

@ -145,7 +145,24 @@ const Stack = createStackNavigator({
)
}
}
else if(navigation.state.routes[index].routeName == 'choosePath'){
return {
headerTitle: 'Calendário',
headerRight: (
<View style={{flex:1, flexDirection:'row'}}>
<TouchableOpacity style={{marginRight: 20, flex:1, flexDirection:'row'}} onPress={() => navigation.navigate('Edit')}>
<Text>FAQ</Text>
</TouchableOpacity>
<TouchableOpacity style={{marginRight: 20, flex:1, flexDirection:'row'}} onPress={() => navigation.navigate('choosePath')}>
<Text>Escolher</Text>
<IconFA name="user-edit" size={22}/>
</TouchableOpacity></View>
)
}
}
else {
return {
header: null

View File

@ -11,7 +11,8 @@ import {
StyleSheet,
Image,
ImageBackground,
NetInfo
NetInfo,
AppState
} from 'react-native';
import {Shadow} from 'react-native-shadow'
@ -38,10 +39,14 @@ const SCREEN_WIDTH = Dimensions.get("window").width;
import {Card, Divider} from 'react-native-elements'
import RNMaterialShadows from 'react-native-material-shadows';
class Home extends Component {
_handleConnectionChange = (isConnected) => {
// this.props.dispatch(connectionState({ status: isConnected }));
console.log("fck that")
};
_refresh() {
return new Promise((resolve) => {
setTimeout(()=>{resolve()}, 2000)
@ -60,21 +65,27 @@ class Home extends Component {
token: {valid: false},
logged: true,
onHold: true,
user: {Name: ''}
user: {Name: ''},
userDetails:{},
appState: AppState.currentState,
};
}
handleConnectivityChange = () => {
handleConnectivityChange = () => {
console.log("asdasdasdasdasd");
}
componentDidMount() {
NetInfo.isConnected.addEventListener('connectionChange', this.handleConnectivityChange);
this.props.hold();
componentDidMount() {
// NetInfo.isConnected.addEventListener('connectionChange', this.handleConnectivityChange);
// this.props.hold();
console.log("hold"+ this.props.onHold)
//this.props.logoutUser();
//console.log(this.props.token);
this.props.getUserInfo(this.props.token);
// this.props.getUserInfo(this.props.userDetails.token);
//console.log('logged:'+this.props.logged);
@ -85,7 +96,7 @@ class Home extends Component {
}
componentWillUnmount() {
NetInfo.isConnected.removeEventListener('connectionChange', this.handleConnectivityChange);
}
bClick() {
@ -101,8 +112,8 @@ class Home extends Component {
//var navigate = this.props.navigation.navigate
}
_update=()=>{
if(this.props.token!= undefined)
this.props.getUserInfo(this.props.token);
this.props.getUserInfo(this.props.userDetails.token);
}
@ -342,7 +353,9 @@ function mapStateToProps(state, props) {
token: state.apiReducer.token,
user: state.apiReducer.user,
logged: state.apiReducer.logged
logged: state.apiReducer.logged,
userDetails: state.apiReducer.userDetails,
onHold: state.apiReducer.onHold
}
}

View File

@ -7,7 +7,11 @@ import {
ScrollView,
Text,
Button,
TouchableOpacity
TouchableOpacity,
Picker,
CheckBox,
ActivityIndicator,
SectionList
} from 'react-native';
import {TabView, TabBar, SceneMap} from 'react-native-tab-view';
@ -32,8 +36,8 @@ const SCREEN_WIDTH = Dimensions.get("window").width;
import FitImage from 'react-native-fit-image';
import { Dropdown } from 'react-native-material-dropdown';
import {Card, Divider} from 'react-native-elements'
import IconF from "react-native-vector-icons/Foundation"
const formatObj = (obj) => {
let a = {};
@ -48,13 +52,24 @@ const formatObj = (obj) => {
class choosePath extends React.Component {
state = {
static navigationOptions = ({ navigation }) => ({
headerTitleStyle : {textAlign: 'center',alignSelf:'center'},
headerStyle:{
backgroundColor:'rgba(0,0,0,0)',
shadowRadius:0,
elevation:0
},
});
state = {
calendar:{}
};
componentDidMount() {
this.props.getEvents(this.props.user);
// this.props.getEvents(this.props.user);
this.props.getAvailableGuestlists(this.props.userDetails.token)
console.log('didMount');
console.log(this.props.events);
}
@ -79,97 +94,238 @@ class choosePath extends React.Component {
]
}
getCareerPaths=()=>{
this.props.getAvailableGuestlists(this.props.userDetails.token)
console.log(this.props.calendar)
}
render() {
let data = [{
value: 'Desenvolvimento Web',
}, {
value: 'Inteligencia artificial',
}, {
value: 'Redes e segurança',
}];
return (
<View style={{width:SCREEN_WIDTH*0.7}}>
<Dropdown
label='Career Path'
data={data}
/>
</View>
<ScrollView style={styles.page}>
<View style={styles.companyContainer}>
</View>
<View style={{flex:1,width:SCREEN_WIDTH*0.7, alignContent:'center'}}>
<View style={styles.pickerCareer}>
<Picker
selectedValue={this.state.guest}
style={{width:'100%'}}
onValueChange={(itemValue, itemIndex) =>{
this.setState({guest: itemValue})
this.props.waitChangeGuest();
this.props.changeGuestList(this.props.userDetails.token,itemValue)
this.props.waitChangeGuest();
this.props.getAvailableSessions(this.props.userDetails.token);
}
}>
<Picker.Item label="Inteligência Artificial" value="9" />
<Picker.Item label="Redes e Segurança" value="10" />
<Picker.Item label="Data Science" value="15" />
<Picker.Item label="Desenvolvimento Web" value="14" />
<Picker.Item label="Internet das Coisas" value="12" />
<Picker.Item label="Desenvolvimento Mobile" value="11" />
</Picker>
</View>
<SectionList
renderItem={({item, index, section}) => <Text key={index}>{item}</Text>}
renderSectionHeader={({section: {title}}) => (
<Text style={{fontWeight: 'bold'}}>{title}</Text>
)}
sections={[
{title: 'Title1', data: ['item1', 'item2']},
{title: 'Title2', data: ['item3', 'item4']},
{title: 'Title3', data: ['item5', 'item6']},
]}
keyExtractor={(item, index) => item + index}
/>
</View >
{ !this.props.changingGuest &&
<View style={styles.block}>
<View style={styles.time}>
<Text style={
{
margin:10,
fontSize:25,
color:'#CC1A17',
marginBottom:0
}
}>
9:00</Text>
<Text style={{marginLeft:20}}>até</Text>
<Text style={
{
margin:10,
fontSize:25,
color:'#CC1A17',
marginTop:5
}
}>
9:30</Text>
</View>
<View style={styles.sessions}>
<View style={styles.session}>
<CheckBox
style={{margin:10}}
value={this.state.checkbox1}
onChange={() => this.setState({ checkbox1: !this.state.checkbox1 })}
/>
<TouchableOpacity><View style={styles.sessionInfo}>
<Text style={styles.sessionTitle}>Nome da palestra</Text>
<Text style={{marginTop:10, marginBottom:5}}>12 Lugares disponíveis</Text>
<Progress.Bar color={'#000000'} progress={0.3} unfilledColor={'white'} width={150}/>
</View></TouchableOpacity>
</View>
<Divider style={{ backgroundColor: '#eeeeee' }} />
<View style={styles.session}>
<CheckBox
style={{margin:10}}
value={this.state.checkbox1}
onChange={() => this.setState({ checkbox1: !this.state.checkbox1 })}
/>
<TouchableOpacity><View style={styles.sessionInfo}>
<Text style={styles.sessionTitle}>Nome da palestra</Text>
<Text style={{marginTop:10, marginBottom:5}}>12 Lugares disponíveis</Text>
<Progress.Bar color={'#000000'} progress={0.3} unfilledColor={'white'} width={150}/>
</View></TouchableOpacity>
</View>
<Divider style={{ backgroundColor: '#eeeeee' }} />
<View style={styles.session}>
<CheckBox
style={{margin:10}}
value={this.state.checkbox1}
onChange={() => this.setState({ checkbox1: !this.state.checkbox1 })}
/>
<TouchableOpacity><View style={styles.sessionInfo}>
<Text style={styles.sessionTitle}>Nome da palestra</Text>
<Text style={{marginTop:10, marginBottom:5}}>12 Lugares disponíveis</Text>
<Progress.Bar color={'#000000'} progress={0.3} unfilledColor={'white'} width={150}/>
</View></TouchableOpacity>
</View>
<Divider style={{ backgroundColor: '#eeeeee' }} />
</View>
</View>
}
{this.props.changingGuest &&
<ActivityIndicator size="large" color="red"/>
}
</ScrollView>
);
}
}
const styles = StyleSheet.create({
carreerPathContainer:{
backgroundColor:'#CC1A17',
height:50,
flex:1,
alignItems:'center',
justifyContent:'center',
paddingTop:15,
sessionInfo:{
margin:5
},
carreerPathText:{
height:50,
color:'white',
fontWeight:'bold',
sessionTitle:{
fontSize:15,
fontWeight:'bold'
},
day:{
margin:10
},
dayText:{
fontSize:20,
},
companyHeader:{
backgroundColor:'#dddddd',
// height:150,
borderRadius:5,
margin:10,
padding:10
},
companyTitle:{
paddingBottom:5,
fontWeight:'bold',
color:'#777777',
fontSize:17,
// padding:20
},
companyLogo: {
borderRadius: 20,
},
wrapper: {
color: '#CC1A17',
textAlign: 'center',
},
company:{
time:{
alignContent:'center',
width:SCREEN_WIDTH*0.20,
backgroundColor:'white'
},
block:{
flex:1,
flexDirection:'row',
// backgroundColor:'red',
color:'black'
},
companyLogoContainer:{
flex:1,
justifyContent: 'center',
width:'60%',
// backgroundColor:'white',
margin:20,
backgroundColor:'red',
margin:10,
borderRadius:5
},
aboutCompany:{
width:SCREEN_WIDTH,
flex:1,
justifyContent: 'center',
alignItems: 'center',
}
companyContainer:{
flex:1,
backgroundColor:'blue',
height:SCREEN_HEIGHT*0.25,
},
sessions:{
flex:1,
flexDirection:'column',
backgroundColor:'white',
},
page:{
backgroundColor:'#eeeeee',
},
pickerCareer:{
paddingLeft:30,
paddingRight:30,
backgroundColor:'white',
width:SCREEN_WIDTH,
},
session:{
margin:10,
flex:1,
flexDirection:'row',
}
});
@ -179,10 +335,15 @@ function mapStateToProps(state, props) {
return {
token: state.apiReducer.token,
// token: state.apiReducer.token,
user: state.apiReducer.user,
logged: state.apiReducer.logged,
events: state.apiReducer.events
events: state.apiReducer.events,
userDetails: state.apiReducer.userDetails,
calendar : state.apiReducer.calendar,
changingGuest : state.apiReducer.changingGuest,
sessions:state.apiReducer.sessions,
}
}

View File

@ -11,7 +11,12 @@ export const HOLD='HOLD'
export const GET_EVENTS='GET_EVENTS'
//API BLUETREND CALENDÁRIO
export const GET_CAREERS='GET_CAREERS' //GET GEST LISTS
export const CHANGE_GUEST = 'CHANGE_GUEST'
export const GET_SESSIONS= 'GET_SESSIONS'
export const SIGN_SESSION= 'SIGN_SESSION'
export const WAIT_CHANGE='WAIT_CHANGE'
//UI

View File

@ -1,48 +1,175 @@
import { AsyncStorage } from 'react-native';
const axios = require('axios');
import { NetInfo } from 'react-native';
import { DATA_AVAILABLE, API_LOGIN, CHECK_USER, LOGOUT_USER, USER_INFO, HOLD, GET_EVENTS } from "./actionTypes" //Import the actions types constant we defined in our actions
import { DATA_AVAILABLE, API_LOGIN, CHECK_USER, LOGOUT_USER, USER_INFO, HOLD, GET_EVENTS, GET_CAREERS, GET_SESSIONS, CHANGE_GUEST, WAIT_CHANGE } from "./actionTypes" //Import the actions types constant we defined in our actions
import moment from 'moment'
import { compose } from 'redux';
const axios = require('axios');
export const waitChangeGuest= ()=>{
return (dispatch)=>{
dispatch({
type: WAIT_CHANGE,
});
}
}
export const connectionState = (status) => {
console.log(status);
return { type: 'CHANGE_CONNECTION_STATUS', isConnected: status };
};
export function getEvents(user){
///Attendee/AvailableGuestlists
axios.defaults.baseURL = 'http://enei2019.uingress.com/internal/api'
export function getAvailableGuestlists(token){
axios.defaults.headers.common = {'Authorization': `bearer ${token.access_token}`}
return (dispatch)=>{
axios.get('/Attendee/AvailableGuestlists')
.then(function (response) {
// handle success
console.log(response);
dispatch({
type: GET_CAREERS,
guests: response.data
});
})
.catch(function (error) {
// handle error
console.log(error);
})
.then(function () {
// always executed
});
}
}
/*
8 - group
9 - IA
10 - NET
11 - MOB
12 - IOT
14 - WB
15 - DS
*/
export function changeGuestList(token, guestID){
//http://enei2019.uingress.com/internal/api/Attendee/ChangeGuestlist/
axios.defaults.headers.common = {'Authorization': `bearer ${token.access_token}`}
return (dispatch)=>{
var full= `/Attendee/ChangeGuestlist/${guestID}`
console.log(full)
axios.get(full)
.then(function (response) {
// handle success
console.log(response);
dispatch({
type: CHANGE_GUEST,
//guests: response.data
});
})
.catch(function (error) {
// handle error
console.log(response);
console.log(error);
})
.then(function () {
// always executed
});
}
}
export function getAvailableSessions(token){
//http://enei2019.uingress.com/internal/api/Attendee/AvailableSessions
axios.defaults.baseURL = 'http://enei2019.uingress.com/internal/api'
axios.defaults.headers.common = {'Authorization': `bearer ${token.access_token}`}
return (dispatch)=>{
axios.get('/Attendee/AvailableSessions')
.then(function (response) {
// handle success
console.log(response);
dispatch({
type: GET_SESSIONS,
sessions: response.data
});
})
.catch(function (error) {
// handle error
console.log(error);
})
.then(function () {
// always executed
});
}
}
export function getEvents(user){
return (dispatch)=>{
let events = [];
console.log("chegou aqui")
for(let key in user.Sessions){
for(let key in user.Sessions){
events.push({
time: moment(user.Sessions[key].SessionStart).format('h:mm'),
timeEnd: moment(user.Sessions[key].SessionEnd).format('h:mm'),
//lineColor:'#009688',
imageUrl: 'https://d2v9y0dukr6mq2.cloudfront.net/video/thumbnail/Vjkyj2hBg/welcome-white-sign-with-falling-colorful-confetti-animation-on-white-background_sglmmh3qm__F0013.png',
description:user.Sessions[key].Description,
name:user.Sessions[key].Name,
Enrolled:user.Sessions[key].Enrolled,
MaxAttendees:user.Sessions[key].MaxAttendees
events.push({
time: moment(user.Sessions[key].SessionStart).format('h:mm'),
timeEnd: moment(user.Sessions[key].SessionEnd).format('h:mm'),
//lineColor:'#009688',
imageUrl: 'https://d2v9y0dukr6mq2.cloudfront.net/video/thumbnail/Vjkyj2hBg/welcome-white-sign-with-falling-colorful-confetti-animation-on-white-background_sglmmh3qm__F0013.png',
description:user.Sessions[key].Description,
name:user.Sessions[key].Name,
Enrolled:user.Sessions[key].Enrolled,
MaxAttendees:user.Sessions[key].MaxAttendees
})
}
}
dispatch({
dispatch({
type: GET_EVENTS,
events: events
});
});
}
}
}
const saveToken = async token => {
@ -86,9 +213,11 @@ const saveToken = async token => {
console.log(error.message);
}
return obj;
}
}
const deleteToken = async () => {
try {
await AsyncStorage.removeItem('userToken');
await AsyncStorage.removeItem('expirationDateToken');
@ -166,7 +295,8 @@ export function login(user, pass){
type: API_LOGIN,
logged:false,
failedAttempt:true,
token: obj
token: obj,
user:{Name:'Henrique'}
});
}
@ -176,39 +306,21 @@ export function login(user, pass){
refreshToken:parsed.refresh_token,
valid:true
};
var details={
username:user,
password:pass
}
dispatch({
type: API_LOGIN,
logged:true,
failedAttempt:false,
token:obj,
user:{Name:'Henrique'},
userDetails: details
// deviceStorage.saveItem(parsed.access_token);
saveToken(obj).then(a=>{
obj.valid=true;
dispatch({
type: API_LOGIN,
logged:true,
failedAttempt:false,
token: obj
});
}).catch(a=>{
console.log('error saving')
obj.valid=false;
dispatch({
type: API_LOGIN,
logged:false,
failedAttempt:true,
token: obj
});
})
});
}
@ -232,13 +344,14 @@ export function hold(){
export function getUserInfo(token){
return (dispatch)=>{
//TODO: verificar validade do token
console.log('Chamada "getUserInfo"');
var obj = {
method: 'GET',
@ -290,124 +403,262 @@ export function logoutUser(){
}
//
function refreshToken(){
export function checkUser(){
refresh=a.refreshToken
//chamar funçao para renovar
console.log("expirou")
var details = {
return (dispatch)=>{
'grant_type': 'refresh_token',
'refresh_token':refresh
};
var formBody = [];
for (var property in details) {
var encodedKey = encodeURIComponent(property);
var encodedValue = encodeURIComponent(details[property]);
formBody.push(encodedKey + "=" + encodedValue);
}
formBody = formBody.join("&");
fetch('http://enei2019.uingress.com/internal/api/token', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
},
getToken().then(a=>{
body: formBody
}).then(res=>res.json()).then(parsed=>{
console.log(parsed);
if(parsed.error=='invalid_grant'){
console.log(formBody);
dispatch({type: CHECK_USER, token:'', logged:false, onHold:false});
}else{
var obj={
access_token:parsed.access_token,
expirationDateToken:Math.round(new Date().getTime()/1000) + 3598,
refreshToken:parsed.refresh_token,
valid:true
if(a.access_token=='none'){
a.valid=false;
console.log('token não existe em memória')
dispatch({type: CHECK_USER,token:a,logged:false, onHold:false});
}
else{
a.valid=true;
};
// deleteToken();
saveToken(obj).then(a=>{
console.log("Token guardado" )
console.log(obj)
dispatch({type: CHECK_USER, token:obj, logged:true, onHold:false});
console.log('Existe Token em memória :'+ a.refreshToken )
//se expirar
if(Math.round(new Date().getTime()/1000) >= a.expirationDateToken){
refresh=a.refreshToken
//chamar funçao para renovar
console.log("expirou")
var details = {
})
}
'grant_type': 'refresh_token',
'refresh_token':refresh
};
}).catch(a=>{
console.log("erro na api")
dispatch({type: CHECK_USER, token:'', logged:false, onHold:false});
})
var formBody = [];
}
refreshLogin= async (user, pass)=>{
console.log("login")
console.log('user: ' +user + ' password: '+pass );
var details = {
'username': user,
'password': pass,
'grant_type': 'password'
};
var formBody = [];
for (var property in details) {
var encodedKey = encodeURIComponent(property);
var encodedValue = encodeURIComponent(details[property]);
formBody.push(encodedKey + "=" + encodedValue);
}
formBody = formBody.join("&");
fetch('http://enei2019.uingress.com/internal/api/token', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
},
body: formBody
}).catch(err=>{
console.log(err);
alert("error");
}).then(res=>res.json()).then(parsed=>{
if(parsed.error_description=="Provided username and password is incorrect"){
console.error("cenas da vida")
}
else{
console.log(parsed)
var obj={
access_token:parsed.access_token,
expirationDateToken:Math.round(new Date().getTime()/1000) + 3598,
refreshToken:parsed.refresh_token,
valid:true
};
go();
return obj;
}
}
)
}
go=(t)=>{
dispatch({type: CHECK_USER, logged:true, onHold:false, user:{Name:'Henrique'}, token:t});
}
export function checkUser(userDetails){
var u= userDetails;
return (dispatch)=>{
//verifica se existe utilizador em memória
if(
userDetails.username != undefined &&
userDetails.username != '' &&
userDetails.password != undefined &&
userDetails.password != ''
){
//verifica a validade do token
if(Math.round(new Date().getTime()/1000) >= userDetails.token.expirationDateToken){
for (var property in details) {
var details = {
'username': userDetails.username,
'password': userDetails.password,
'grant_type': 'password'
};
var encodedKey = encodeURIComponent(property);
var encodedValue = encodeURIComponent(details[property]);
formBody.push(encodedKey + "=" + encodedValue);
var formBody = [];
for (var property in details) {
var encodedKey = encodeURIComponent(property);
var encodedValue = encodeURIComponent(details[property]);
formBody.push(encodedKey + "=" + encodedValue);
}
formBody = formBody.join("&");
fetch('http://enei2019.uingress.com/internal/api/token', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
},
body: formBody
}).catch(err=>{
console.log(err);
alert("error");
}).then(res=>res.json()).then(parsed=>{
if(parsed.error_description=="Provided username and password is incorrect"){
console.error("cenas da vida")
}
formBody = formBody.join("&");
fetch('http://enei2019.uingress.com/internal/api/token', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
},
body: formBody
}).then(res=>res.json()).then(parsed=>{
console.log(parsed);
if(parsed.error=='invalid_grant'){
console.log(formBody);
dispatch({type: CHECK_USER, token:'', logged:false, onHold:false});
}else{
else{
console.log(parsed)
var obj={
access_token:parsed.access_token,
expirationDateToken:Math.round(new Date().getTime()/1000) + 3598,
refreshToken:parsed.refresh_token,
valid:true
};
// deleteToken();
saveToken(obj).then(a=>{
console.log("Token guardado" )
console.log(obj)
dispatch({type: CHECK_USER, token:obj, logged:true, onHold:false});
})
}
}).catch(a=>{
console.log("erro na api")
dispatch({type: CHECK_USER, token:'', logged:false, onHold:false});
})
}else{
console.log("Tempo restante token: "+ Math.round((a.expirationDateToken-Math.round(new Date().getTime()/1000) )/60) +" Minutos");
dispatch({type: CHECK_USER, logged:true, onHold:false, userDetails:u,token:obj});
}
}
)
}else{
console.log("Tempo restante token: "+ Math.round((userDetails.token.expirationDateToken-Math.round(new Date().getTime()/1000) )/60) +" Minutos");
//fazer validação da data e renovar o token
dispatch({type: CHECK_USER, token:a, logged:true, onHold:false, user:{Name:'Henrique'}});
}
//dispatch home
dispatch({type: CHECK_USER, logged:true, onHold:false, user:{Name:'Henrique'},userDetails:u});
}
}).catch(a=>{
console.log('erro a ler o token'+ a);
dispatch({type: CHECK_USER,token:false, logged:false, user:''});
})
}
}
}
//utilizador não existe em memória
else{
dispatch({type: CHECK_USER,logged:false, onHold:false,userDetails:u});
//dispatch menu de login
}
}}

View File

@ -1,5 +1,17 @@
export {checkUser, login,getEvents, hold, getUserInfo,logoutUser} from "./api"
export {openScannerLogin,closeLoginQRScan}from "./ui"
export {checkUser,
login,getEvents,
hold, getUserInfo,
logoutUser,
getAvailableGuestlists,
changeGuestList,
waitChangeGuest,
getAvailableSessions
} from "./api"
export {
openScannerLogin,
closeLoginQRScan
}from "./ui"

View File

@ -1,45 +1,111 @@
import { DATA_AVAILABLE, API_LOGIN, CHECK_USER, LOGOUT_USER, USER_INFO, HOLD, GET_EVENTS } from "../actions/actionTypes" //Import the actions types constant we defined in our actions
import { DATA_AVAILABLE, API_LOGIN, CHECK_USER, LOGOUT_USER, USER_INFO, HOLD, GET_EVENTS, GET_CAREERS, CHANGE_GUEST, WAIT_CHANGE, GET_SESSIONS } from "../actions/actionTypes" //Import the actions types constant we defined in our actions
import { REHYDRATE } from 'redux-persist';
let apiState= { isConnected:false, token:{valid:false}, tokenData:'error', logged:false, onHold:true,user:{}, events:[], failedAttempt:false}
let apiState= {
isConnected:false,
logged:false,
onHold:true,user:{},
events:[],
failedAttempt:false,
userDetails:{
username:'',
password:'',
token:{
expirationDateToken:0,
access_token:''
}
},
calendar:{
},
changingGuest:false,
sessions:{}
}
const apiReducer = (state = apiState, action) => {
switch(action.type){
case REHYDRATE:
console.log( action.payload)
return {
// ...state,
// logged:false,
//onHold:true,
user: action.payload.apiReducer.user
console.log( action.payload)
var expirationDateTokenA=0;
var access_tokenA='';
if(action.payload.apiReducer.userDetails.token!=undefined){
if(action.payload.apiReducer.userDetails.token.expirationDateToken!= undefined){
expirationDateTokenA= action.payload.apiReducer.userDetails.token.expirationDateToken;
}
if((action.payload.apiReducer.userDetails.token.access_token!= undefined)){
access_tokenA= action.payload.apiReducer.userDetails.token.access_token;
}
}
return {
// token: action.payload.apiReducer.token,
user: action.payload.apiReducer.user,
userDetails:{
token:{
expirationDateToken: expirationDateTokenA,
access_token:access_tokenA,
},
username:action.payload.apiReducer.userDetails.username,
password:action.payload.apiReducer.userDetails.password
}
};
case 'CHANGE_CONNECTION_STATUS':
return Object.assign({}, state, {
isConnected: action.isConnected,
});
case HOLD:
state=Object.assign({},state, { onHold:true });
return state;
case API_LOGIN:
state=Object.assign({},state, { logged:action.logged, token:action.token, failedAttempt: action.failedAttempt, user:user});
state=Object.assign({},state, {
logged:action.logged,
//token:action.token,
failedAttempt: action.failedAttempt,
user:action.user,
userDetails: {token:action.token, username:action.userDetails.username, password:action.userDetails.password},
});
return state;
case CHECK_USER:
state=Object.assign({},state, { token:action.token,logged:action.logged, onHold:action.onHold});
var u= action.userDetails;
if(action.token!=undefined)
u.token= action.token;
state=Object.assign({},state, {logged:action.logged, onHold:action.onHold, userDetails:u });
return state;
case LOGOUT_USER:
state=Object.assign({},state, { token:action.token, logged:false});
state=Object.assign({},state, { logged:false});
return state;
@ -54,9 +120,58 @@ const apiReducer = (state = apiState, action) => {
state=Object.assign({},state, { events: action.events});
return state;
case GET_CAREERS:
var c= {
guests:action.guests
}
state=Object.assign({},state, { calendar:c });
return state;
case CHANGE_GUEST:
state=Object.assign({},state, { changingGuest:false});
return state;
case WAIT_CHANGE:
state=Object.assign({},state, { changingGuest:true});
return state;
case GET_SESSIONS:
state=Object.assign({},state, { changingGuest:false, sessions:action.sessions});
return state;
default:
return state;
}

View File

@ -5,7 +5,6 @@
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; };
00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; };
@ -59,6 +58,8 @@
BE5EAB86221B7D5400E92E5B /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BE5EAB77221B7D5400E92E5B /* Zocial.ttf */; };
BE5EAC3A221B83CF00E92E5B /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BE302B75221B7C3B005626CF /* Ionicons.ttf */; };
BE5EAC41221B889900E92E5B /* libReactNativePermissions.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BE5EAC40221B888C00E92E5B /* libReactNativePermissions.a */; };
4EBB88037B054A508BF35245 /* libRNDeviceInfo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F42241E0235464C91B24049 /* libRNDeviceInfo.a */; };
E677346A94D54E90817979B0 /* libRNDeviceInfo-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C4D43A092A4408B91B32E76 /* libRNDeviceInfo-tvOS.a */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@ -436,6 +437,9 @@
BE5EAC3B221B888C00E92E5B /* ReactNativePermissions.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ReactNativePermissions.xcodeproj; path = "../node_modules/react-native-permissions/ios/ReactNativePermissions.xcodeproj"; sourceTree = "<group>"; };
C00CE8A4E3B747F9816B91CF /* libBVLinearGradient.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libBVLinearGradient.a; sourceTree = "<group>"; };
EB0A5A258CBE4EEFAD3C358E /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.a; sourceTree = "<group>"; };
5BA133418E6F4967BC5BC234 /* RNDeviceInfo.xcodeproj */ = {isa = PBXFileReference; name = "RNDeviceInfo.xcodeproj"; path = "../node_modules/react-native-device-info/ios/RNDeviceInfo.xcodeproj"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; };
0F42241E0235464C91B24049 /* libRNDeviceInfo.a */ = {isa = PBXFileReference; name = "libRNDeviceInfo.a"; path = "libRNDeviceInfo.a"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
3C4D43A092A4408B91B32E76 /* libRNDeviceInfo-tvOS.a */ = {isa = PBXFileReference; name = "libRNDeviceInfo-tvOS.a"; path = "libRNDeviceInfo-tvOS.a"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -468,6 +472,7 @@
139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */,
BE104176D74E47E9A369B15A /* libRNVectorIcons.a in Frameworks */,
69E1B84AE0DF486CB1B1D226 /* libBVLinearGradient.a in Frameworks */,
4EBB88037B054A508BF35245 /* libRNDeviceInfo.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -484,6 +489,7 @@
2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */,
2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */,
514DB1DF2E3B452F9EF272E3 /* libRNVectorIcons-tvOS.a in Frameworks */,
E677346A94D54E90817979B0 /* libRNDeviceInfo-tvOS.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -660,6 +666,7 @@
139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */,
664970B9D10A41A18B44727F /* RNVectorIcons.xcodeproj */,
1908F5E093844AC5A143E888 /* BVLinearGradient.xcodeproj */,
5BA133418E6F4967BC5BC234 /* RNDeviceInfo.xcodeproj */,
);
name = Libraries;
sourceTree = "<group>";
@ -1442,6 +1449,7 @@
"$(inherited)",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
);
INFOPLIST_FILE = appTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
@ -1451,6 +1459,8 @@
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
@ -1471,6 +1481,7 @@
"$(inherited)",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
);
INFOPLIST_FILE = appTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
@ -1480,6 +1491,8 @@
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
@ -1502,6 +1515,7 @@
"$(inherited)",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
);
INFOPLIST_FILE = app/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@ -1526,6 +1540,7 @@
"$(inherited)",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
);
INFOPLIST_FILE = app/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@ -1556,6 +1571,7 @@
"$(inherited)",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
);
INFOPLIST_FILE = "app-tvOS/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@ -1564,6 +1580,8 @@
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
@ -1593,6 +1611,7 @@
"$(inherited)",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
);
INFOPLIST_FILE = "app-tvOS/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@ -1601,6 +1620,8 @@
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
@ -1629,6 +1650,7 @@
"$(inherited)",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
);
INFOPLIST_FILE = "app-tvOSTests/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
@ -1637,6 +1659,8 @@
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
@ -1665,6 +1689,7 @@
"$(inherited)",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
);
INFOPLIST_FILE = "app-tvOSTests/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
@ -1673,6 +1698,8 @@
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",

18
App/package-lock.json generated
View File

@ -7807,6 +7807,14 @@
"prop-types": "^15.6.2"
}
},
"react-native-check-box": {
"version": "2.1.7",
"resolved": "https://registry.npmjs.org/react-native-check-box/-/react-native-check-box-2.1.7.tgz",
"integrity": "sha512-dPVOoz4jKs2je2HSHp7+XJXNyZFq8Kij7IHutigrQKzB550Dko6ZAQu/1mG1FzdUMFxxkZ2nX59KmbR0Co0T8Q==",
"requires": {
"prop-types": "^15.5.7"
}
},
"react-native-confirmation-code-input": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/react-native-confirmation-code-input/-/react-native-confirmation-code-input-1.0.4.tgz",
@ -7816,6 +7824,11 @@
"prop-types": "^15.5.10"
}
},
"react-native-device-info": {
"version": "0.26.4",
"resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-0.26.4.tgz",
"integrity": "sha512-gQo/hSk26E/gK0W3QvkSv+mrBbceFszezxLfUriK3JbiUwvaOlXm6kru2jAu1XGJzfxo/JUO0Mc0lopqiPgw+A=="
},
"react-native-elements": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/react-native-elements/-/react-native-elements-1.0.0.tgz",
@ -7950,6 +7963,11 @@
"react-native-animatable": "^1.2.4"
}
},
"react-native-network-info": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/react-native-network-info/-/react-native-network-info-4.0.1.tgz",
"integrity": "sha512-ZeSkeBL/fHsFR6sAOVHMd4oMknCwsbEeL+Zewec1/3ielg8k9YcddK3wymXS7kvwV0mTB2ji4X5tI0b7XY0sDA=="
},
"react-native-permissions": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/react-native-permissions/-/react-native-permissions-1.1.1.tgz",

View File

@ -18,7 +18,9 @@
"react-native-action-button": "^2.8.5",
"react-native-app-intro-slider": "^1.0.1",
"react-native-camera": "^1.9.2",
"react-native-check-box": "^2.1.7",
"react-native-confirmation-code-input": "^1.0.4",
"react-native-device-info": "^0.26.4",
"react-native-elements": "^1.0.0",
"react-native-fit-image": "^1.5.4",
"react-native-gesture-handler": "^1.0.15",
@ -30,6 +32,7 @@
"react-native-material-dropdown": "^0.11.1",
"react-native-material-shadows": "0.0.2",
"react-native-modal": "^7.0.2",
"react-native-network-info": "^4.0.1",
"react-native-offline": "^4.3.0",
"react-native-progress": "^3.5.0",
"react-native-pull-to-refresh": "^2.1.3",
@ -42,6 +45,7 @@
"react-native-vector-icons": "^6.1.0",
"react-navigation": "^3.0.9",
"react-redux": "^6.0.0",
"react-timer-mixin": "^0.13.4",
"redux": "^4.0.1",
"redux-logger": "^3.0.6",
"redux-persist": "^5.10.0",

0
website/Archive.zip Normal file → Executable file
View File

View File

@ -736,7 +736,7 @@
.affix {
position: fixed;
}
@media (max-width: 768px) {
/* @media (max-width: 768px) {
.container {
padding-left: 10px;
padding-right: 10px;
@ -753,4 +753,4 @@
padding-left: 10px;
padding-right: 10px;
}
}
} */

View File

@ -8,21 +8,21 @@
<meta content="width" name="MobileOptimized">
<meta content="true" name="HandheldFriendly">
<!-- Place favicon.ico in the root directory -->
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#000000">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="theme-color" content="#ff0000">
<title>ENEI 2019 - Career Path</title>
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png">
<link rel="manifest" href="site.webmanifest">
<link rel="mask-icon" href="safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<title>ENEI'19 - Career Path</title>
<meta name="description"
content="Página do Encontro Nacional de Estudantes de Informática 2019, no Instituto Superior de Engenharia de Coimbra (ISEC) a realizar-se entre 12 e 15 de abril de 2019. O ENEI pretende oferecer aos estudantes de todo o país um evento que promove a aprendizagem, a troca de ideias e o convívio, enquanto tenta criar fortes ligações com o mundo empresarial.">
<meta property="og:locale" content="pt_PT" />
<meta property="og:title" content="ENEI 2019 - Career Path" />
<meta property="og:title" content="ENEI'19 - Career Path" />
<meta property="og:description"
content="Página do Encontro Nacional de Estudantes de Informática 2019, no Instituto Superior de Engenharia de Coimbra (ISEC) a realizar-se entre 12 e 15 de abril de 2019. O ENEI pretende oferecer aos estudantes de todo o país um evento que promove a aprendizagem, a troca de ideias e o convívio, enquanto tenta criar fortes ligações com o mundo empresarial." />
<meta property="og:site_name" content="ENEI 2019" />
<meta property="og:site_name" content="ENEI'19" />
<meta property="og:url" content="http://www.enei.pt/career-path.html" />
<meta property="og:image" content="http://www.enei.pt/imgs/share-image.jpg" />
<meta property="og:type" content="Website" />

View File

@ -8,11 +8,11 @@
<meta content="width" name="MobileOptimized">
<meta content="true" name="HandheldFriendly">
<!-- Place favicon.ico in the root directory -->
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png">
<link rel="manifest" href="site.webmanifest">
<link rel="mask-icon" href="safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<title>ENEI'19 - Error</title>

View File

@ -8,21 +8,21 @@
<meta content="width" name="MobileOptimized">
<meta content="true" name="HandheldFriendly">
<!-- Place favicon.ico in the root directory -->
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#000000">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="theme-color" content="#ff0000">
<title>ENEI 2019 - Faqs</title>
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png">
<link rel="manifest" href="site.webmanifest">
<link rel="mask-icon" href="safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<title>ENEI'19 - Faqs</title>
<meta name="description"
content="Página do Encontro Nacional de Estudantes de Informática 2019, no Instituto Superior de Engenharia de Coimbra (ISEC) a realizar-se entre 12 e 15 de abril de 2019. O ENEI pretende oferecer aos estudantes de todo o país um evento que promove a aprendizagem, a troca de ideias e o convívio, enquanto tenta criar fortes ligações com o mundo empresarial.">
<meta property="og:locale" content="pt_PT" />
<meta property="og:title" content="ENEI 2019 - Faqs" />
<meta property="og:title" content="ENEI'19 - Faqs" />
<meta property="og:description"
content="Página do Encontro Nacional de Estudantes de Informática 2019, no Instituto Superior de Engenharia de Coimbra (ISEC) a realizar-se entre 12 e 15 de abril de 2019. O ENEI pretende oferecer aos estudantes de todo o país um evento que promove a aprendizagem, a troca de ideias e o convívio, enquanto tenta criar fortes ligações com o mundo empresarial." />
<meta property="og:site_name" content="ENEI 2019" />
<meta property="og:site_name" content="ENEI'19" />
<meta property="og:url" content="http://www.enei.pt/faqs.html" />
<meta property="og:image" content="http://www.enei.pt/imgs/share-image.jpg" />
<meta property="og:type" content="Website" />

View File

@ -8,11 +8,11 @@
<meta content="width" name="MobileOptimized">
<meta content="true" name="HandheldFriendly">
<!-- Place favicon.ico in the root directory -->
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png">
<link rel="manifest" href="site.webmanifest">
<link rel="mask-icon" href="safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<title>ENEI'19 - Bilhetes de Grupo</title>

View File

@ -0,0 +1,81 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 283.5 283.5" style="enable-background:new 0 0 283.5 283.5;" xml:space="preserve">
<style type="text/css">
.Arched_x0020_Green{fill:url(#SVGID_1_);stroke:#FFFFFF;stroke-width:0.25;stroke-miterlimit:1;}
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:none;}
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_2_);}
.st2{fill:#FFFFFF;}
</style>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-2108.2813" y1="685.9854" x2="-2107.5742" y2="685.2783">
<stop offset="0" style="stop-color:#259E2E"/>
<stop offset="0.9831" style="stop-color:#1C381D"/>
</linearGradient>
<rect x="-282.8" y="-283.5" class="st0" width="850.4" height="850.4"/>
<g>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="141.7324" y1="-6.363734e-009" x2="141.7324" y2="282.5799">
<stop offset="0.1" style="stop-color:#C4161C"/>
<stop offset="0.1774" style="stop-color:#B81319"/>
<stop offset="0.5011" style="stop-color:#8C090B"/>
<stop offset="0.7528" style="stop-color:#710203"/>
<stop offset="0.9" style="stop-color:#670000"/>
</linearGradient>
<path class="st1" d="M283.5,0.2c-62.4,28-112.1,77.8-140.4,138.9C162.1,96.9,171,49.4,166.9,0H0v283.5h283.5V0.2z"/>
<g>
<path class="st2" d="M45.2,197.2c-1.4-1.2-2.9-2-4.5-2.5c-1.6-0.5-3.2-0.7-4.7-0.7c-1,0-2,0.1-3,0.4c-1,0.3-1.9,0.8-2.7,1.4
c-0.8,0.7-1.4,1.5-1.9,2.6c-0.5,1-0.8,2.3-0.8,3.8v13.2c0,1.5,0.3,2.7,0.8,3.8c0.5,1,1.2,1.9,2,2.5c0.8,0.6,1.7,1.1,2.7,1.4
c1,0.3,2,0.5,3,0.5c1.5,0,3.1-0.2,4.6-0.7c1.5-0.4,3.1-1.3,4.7-2.5l4.3,6.9c-1.7,1.4-3.7,2.5-6.1,3.3c-2.4,0.8-4.9,1.2-7.6,1.2
c-2.1,0-4.2-0.3-6.3-0.9c-2-0.6-3.9-1.5-5.5-2.7c-1.6-1.2-2.9-2.7-3.9-4.5c-1-1.8-1.5-3.9-1.5-6.4v-16.9c0-2.4,0.5-4.5,1.5-6.3
c1-1.8,2.3-3.3,3.9-4.6c1.6-1.2,3.4-2.1,5.5-2.7c2.1-0.6,4.2-0.9,6.3-0.9c2.6,0,5.1,0.4,7.6,1.1c2.4,0.7,4.5,1.8,6.3,3.3
L45.2,197.2z"/>
<path class="st2" d="M74.8,186.3c2.3,0,4.2,0.4,5.9,1.3c1.6,0.9,3,2,4.1,3.3c1.1,1.4,1.9,2.9,2.4,4.5c0.5,1.7,0.7,3.3,0.7,4.9
c0,1.2-0.1,2.4-0.5,3.6c-0.3,1.2-0.8,2.4-1.4,3.5c-0.6,1.1-1.4,2.1-2.3,3.1c-0.9,0.9-2,1.7-3.1,2.3l8.1,18.5h-9.7
c-0.2-0.5-0.4-1.2-0.8-2.1c-0.4-0.9-0.8-1.9-1.2-3c-0.5-1.1-0.9-2.2-1.4-3.4c-0.5-1.2-1-2.3-1.4-3.4c-0.5-1.1-0.9-2.1-1.2-3
c-0.4-0.9-0.7-1.6-0.9-2.1h-8.1v17h-9v-45.1H74.8z M63.7,206.4h9.1c2.1,0,3.7-0.6,4.7-1.7c1-1.1,1.6-2.6,1.6-4.3
c0-1.8-0.5-3.2-1.6-4.3c-1.1-1.1-2.6-1.7-4.7-1.7h-9.1V206.4z"/>
<path class="st2" d="M103.2,186.3v45.1h-9v-45.1H103.2z"/>
<path class="st2" d="M128.8,194.3v37.1h-9v-37.1h-11.3v-8H140v8H128.8z"/>
<path class="st2" d="M154.3,186.3v45.1h-9v-45.1H154.3z"/>
<path class="st2" d="M189.3,197.2c-1.4-1.2-2.9-2-4.5-2.5c-1.6-0.5-3.2-0.7-4.7-0.7c-1,0-2,0.1-3,0.4c-1,0.3-1.9,0.8-2.7,1.4
c-0.8,0.7-1.4,1.5-1.9,2.6c-0.5,1-0.8,2.3-0.8,3.8v13.2c0,1.5,0.2,2.7,0.8,3.8c0.5,1,1.1,1.9,2,2.5c0.8,0.6,1.7,1.1,2.7,1.4
c1,0.3,2,0.5,3,0.5c1.5,0,3.1-0.2,4.6-0.7c1.5-0.4,3.1-1.3,4.7-2.5l4.2,6.9c-1.7,1.4-3.7,2.5-6.1,3.3c-2.4,0.8-4.9,1.2-7.6,1.2
c-2.1,0-4.2-0.3-6.3-0.9c-2.1-0.6-3.9-1.5-5.5-2.7c-1.6-1.2-2.9-2.7-3.9-4.5c-1-1.8-1.5-3.9-1.5-6.4v-16.9c0-2.4,0.5-4.5,1.5-6.3
c1-1.8,2.3-3.3,3.9-4.6c1.6-1.2,3.4-2.1,5.5-2.7c2.1-0.6,4.2-0.9,6.3-0.9c2.6,0,5.1,0.4,7.6,1.1c2.4,0.7,4.5,1.8,6.3,3.3
L189.3,197.2z"/>
<path class="st2" d="M222.9,222.1h-15.7l-3,9.3h-9.5l15.8-45.1h9.2l15.7,45.1h-9.8L222.9,222.1z M209.6,214.5h10.9l-1.8-5.8
l-3.5-11.9h-0.3l-3.5,11.7L209.6,214.5z"/>
<path class="st2" d="M239.3,231.4v-45.1h8.8v37h18.2v8.1H239.3z"/>
</g>
<g>
<path class="st2" d="M32.3,260.9c0,0.8-0.2,1.5-0.5,2c-0.3,0.6-0.7,1.1-1.3,1.5c-0.5,0.4-1.2,0.7-1.9,0.9
c-0.7,0.2-1.6,0.3-2.4,0.3c-1.2,0-2.3-0.2-3.3-0.5c-1-0.3-2-0.9-3-1.7l1.5-2c0.7,0.5,1.5,0.9,2.3,1.2c0.8,0.3,1.6,0.4,2.4,0.4
c1.1,0,1.9-0.2,2.4-0.7c0.5-0.4,0.8-1,0.8-1.7c0-0.4-0.1-0.8-0.3-1.1c-0.2-0.3-0.5-0.5-0.9-0.7c-0.4-0.2-0.8-0.3-1.3-0.4
c-0.5-0.1-1-0.2-1.5-0.4c-0.6-0.1-1.3-0.3-1.9-0.5c-0.6-0.2-1.1-0.5-1.6-0.9c-0.5-0.4-0.8-0.8-1.1-1.3c-0.3-0.5-0.4-1.2-0.4-1.9
c0-0.7,0.1-1.3,0.4-1.9c0.3-0.6,0.6-1.1,1.1-1.5c0.5-0.4,1.1-0.8,1.7-1c0.7-0.3,1.4-0.4,2.3-0.4c1,0,2,0.1,2.9,0.3
c1,0.2,1.9,0.6,2.8,1.1l-1.2,2.2c-0.7-0.5-1.5-0.8-2.2-0.9c-0.7-0.2-1.4-0.3-2.1-0.3c-0.4,0-0.7,0.1-1.1,0.2
c-0.3,0.1-0.6,0.2-0.9,0.4c-0.3,0.2-0.5,0.4-0.6,0.7c-0.2,0.3-0.2,0.6-0.2,1c0,0.4,0.1,0.7,0.3,1c0.2,0.3,0.5,0.5,0.8,0.7
c0.3,0.2,0.7,0.3,1.2,0.4c0.4,0.1,0.9,0.2,1.4,0.3c0.8,0.2,1.5,0.4,2.2,0.6c0.7,0.2,1.2,0.6,1.7,0.9c0.5,0.4,0.8,0.8,1.1,1.4
C32.1,259.5,32.3,260.1,32.3,260.9z"/>
<path class="st2" d="M65.3,260.2c0,0.9-0.2,1.6-0.5,2.3c-0.3,0.7-0.8,1.3-1.3,1.7c-0.6,0.5-1.2,0.8-2,1.1
c-0.8,0.2-1.6,0.4-2.4,0.4c-0.9,0-1.7-0.1-2.5-0.4c-0.8-0.3-1.4-0.6-2-1.1c-0.5-0.5-1-1.1-1.3-1.7c-0.3-0.7-0.5-1.5-0.5-2.3v-5.9
c0-0.9,0.2-1.6,0.5-2.3c0.3-0.7,0.8-1.2,1.3-1.7c0.6-0.5,1.2-0.8,2-1.1c0.7-0.2,1.5-0.4,2.4-0.4c0.8,0,1.6,0.1,2.4,0.4
c0.8,0.3,1.4,0.6,2,1.1c0.6,0.5,1,1.1,1.3,1.7c0.3,0.7,0.5,1.4,0.5,2.3V260.2z M62.6,254.8c0-0.6-0.1-1.1-0.3-1.5
c-0.2-0.4-0.4-0.8-0.8-1.1c-0.3-0.3-0.7-0.5-1.1-0.6c-0.4-0.1-0.9-0.2-1.3-0.2c-0.5,0-0.9,0.1-1.3,0.2c-0.4,0.1-0.8,0.3-1.1,0.6
c-0.3,0.3-0.6,0.6-0.8,1.1c-0.2,0.4-0.3,0.9-0.3,1.5v5c0,0.6,0.1,1.1,0.3,1.6c0.2,0.4,0.4,0.8,0.8,1.1c0.3,0.3,0.7,0.5,1.1,0.6
c0.4,0.1,0.9,0.2,1.3,0.2c0.4,0,0.9-0.1,1.3-0.2c0.4-0.1,0.8-0.3,1.1-0.6c0.3-0.3,0.6-0.6,0.8-1.1c0.2-0.4,0.3-1,0.3-1.6V254.8z"
/>
<path class="st2" d="M89.4,256.1h7.2v2.5h-7.2v7h-2.7v-16.5h11.2v2.5h-8.4V256.1z"/>
<path class="st2" d="M124.4,251.5v14h-2.7v-14h-4.6v-2.5H129v2.5H124.4z"/>
<path class="st2" d="M158.4,253.8l-1.2,4.9l-1.7,6.8h-3l-4.3-16.5h2.9l1.6,7.1l1.2,5.3h0.1l1.3-5.3l1.8-7h2.7l1.8,7.3l1.2,5h0.1
l1.1-5.1l1.7-7.2h2.9l-4.3,16.5h-3l-1.7-6.8l-1.2-4.9H158.4z"/>
<path class="st2" d="M197.5,262h-6.2l-1.2,3.6h-2.9l5.8-16.5h2.8l5.8,16.5h-3L197.5,262z M192.1,259.6h4.6l-1-3.1l-1.3-4.2h-0.1
l-1.2,4L192.1,259.6z"/>
<path class="st2" d="M228.9,249.1c0.8,0,1.5,0.2,2.1,0.5c0.6,0.3,1.1,0.7,1.4,1.2c0.4,0.5,0.7,1,0.9,1.6c0.2,0.6,0.3,1.2,0.3,1.8
c0,0.4-0.1,0.9-0.2,1.4c-0.1,0.4-0.3,0.9-0.6,1.3c-0.2,0.4-0.5,0.8-0.9,1.1c-0.3,0.3-0.7,0.6-1.2,0.8l3,6.9h-3l-2.7-6.4h-3.6v6.4
h-2.7v-16.5H228.9z M230.9,254.1c0-0.8-0.2-1.4-0.7-1.9c-0.5-0.5-1.1-0.7-1.9-0.7h-3.8v5.2h3.8c0.8,0,1.4-0.2,1.9-0.7
C230.7,255.5,230.9,254.9,230.9,254.1z"/>
<path class="st2" d="M254.4,249.1h11.2v2.5h-8.4v4.5h7.2v2.5h-7.2v4.6h8.4v2.5h-11.2V249.1z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.4 KiB

1201
website/imgs/email.svg Executable file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 117 KiB

1201
website/imgs/facebook.svg Executable file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 117 KiB

1201
website/imgs/instagram.svg Executable file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 117 KiB

235
website/imgs/linkedin.svg Executable file
View File

@ -0,0 +1,235 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 34.6 34.6" style="enable-background:new 0 0 34.6 34.6;" xml:space="preserve">
<style type="text/css">
.st0{display:none;fill:none;stroke:#FFFFFF;stroke-width:6;stroke-miterlimit:10;}
.st1{display:none;}
.st2{display:inline;}
.st3{display:inline;clip-path:url(#SVGID_4_);fill:#FFFFFF;}
.st4{display:inline;clip-path:url(#SVGID_4_);fill:#993D3F;}
.st5{display:inline;clip-path:url(#SVGID_6_);fill:#FFFFFF;}
.st6{display:inline;clip-path:url(#SVGID_6_);fill:none;stroke:#FFFFFF;stroke-width:2;stroke-miterlimit:10;}
.st7{display:inline;clip-path:url(#SVGID_6_);fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
.st8{display:inline;clip-path:url(#SVGID_6_);fill:none;stroke:#FFFFFF;stroke-width:3;stroke-miterlimit:10;}
.st9{display:inline;clip-path:url(#SVGID_6_);fill:none;stroke:#FFFFFF;stroke-width:3.342;stroke-miterlimit:10;}
.st10{display:inline;clip-path:url(#SVGID_6_);}
.st11{display:inline;clip-path:url(#SVGID_6_);fill:none;stroke:#FFFFFF;stroke-width:2.394;stroke-miterlimit:10;}
.st12{display:none;fill:#993D3F;}
.st13{fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:10;}
.st14{clip-path:url(#SVGID_8_);}
.st15{fill-rule:evenodd;clip-rule:evenodd;}
</style>
<text transform="matrix(1 0 0 1 -115.9365 -331.2238)" class="st1"><tspan x="0" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">O obj</tspan><tspan x="34.8" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">e</tspan><tspan x="42.7" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">ti</tspan><tspan x="51.4" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">v</tspan><tspan x="58.4" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">o dos segui</tspan><tspan x="132" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">n</tspan><tspan x="140.7" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">tes b</tspan><tspan x="172.4" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">o</tspan><tspan x="180.5" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">tões diz respei</tspan><tspan x="273.5" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">t</tspan><tspan x="278.7" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">o à </tspan></text>
<text transform="matrix(1 0 0 1 -115.9365 -315.6237)" style="display:none;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">utilização no website. </text>
<text transform="matrix(1 0 0 1 -115.9365 -300.0236)" class="st1"><tspan x="0" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">P</tspan><tspan x="9.3" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">oderá </tspan><tspan x="50.4" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">v</tspan><tspan x="57.3" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">ariar a </tspan><tspan x="101.1" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">c</tspan><tspan x="108.3" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">or pa</tspan><tspan x="141.5" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">r</tspan><tspan x="146.7" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">a uma das 5 altern</tspan><tspan x="266.7" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">a</tspan><tspan x="274.3" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">ti</tspan><tspan x="283.1" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">v</tspan><tspan x="290.1" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">as, </tspan></text>
<text transform="matrix(1 0 0 1 -115.9365 -284.424)" class="st1"><tspan x="0" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">assim </tspan><tspan x="41.1" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">c</tspan><tspan x="48.3" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">omo o t</tspan><tspan x="98.6" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">e</tspan><tspan x="106.3" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">x</tspan><tspan x="113.3" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">t</tspan><tspan x="118.5" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">o aprese</tspan><tspan x="173.8" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">n</tspan><tspan x="182.5" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">tado.</tspan></text>
<text transform="matrix(1 0 0 1 -115.9365 -253.2238)" class="st1"><tspan x="0" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">P</tspan><tspan x="9.3" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">ode ser al</tspan><tspan x="71.5" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">e</tspan><tspan x="79.3" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">t</tspan><tspan x="84.6" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">r</tspan><tspan x="89.7" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">ada a </tspan><tspan x="128.4" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">c</tspan><tspan x="135.5" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">or e t</tspan><tspan x="168.8" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">e</tspan><tspan x="176.6" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">x</tspan><tspan x="183.5" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">t</tspan><tspan x="188.7" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">o </tspan><tspan x="200.3" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">c</tspan><tspan x="207.5" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">onsoa</tspan><tspan x="246.6" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">n</tspan><tspan x="255.3" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">te a </tspan></text>
<text transform="matrix(1 0 0 1 -115.9365 -237.6237)" class="st1"><tspan x="0" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">necessidade de </tspan><tspan x="104.7" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">c</tspan><tspan x="111.9" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Regular'; font-size:13px;">ada situação.</tspan></text>
<polygon class="st0" points="508.2,-140.5 355.3,-99.7 355.3,-143.3 508.2,-181.3 "/>
<g class="st1">
<defs>
<rect id="SVGID_1_" x="-162.6" y="-427.2" width="841.9" height="595.3"/>
</defs>
<clipPath id="SVGID_2_" class="st2">
<use xlink:href="#SVGID_1_" style="overflow:visible;"/>
</clipPath>
<g style="display:inline;clip-path:url(#SVGID_2_);">
<text transform="matrix(1.0882 -0.2843 5.426255e-002 0.9985 362.3272 -119.1014)"><tspan x="0" y="0" style="fill:#FFFFFF; font-family:'Montserrat-SemiBold'; font-size:14.0373px;">GET </tspan><tspan x="32.6" y="0" style="fill:#FFFFFF; font-family:'Montserrat-SemiBold'; font-size:14.0373px;">Y</tspan><tspan x="41.6" y="0" style="fill:#FFFFFF; font-family:'Montserrat-SemiBold'; font-size:14.0373px;">OUR TICKET</tspan></text>
</g>
<g style="display:inline;clip-path:url(#SVGID_2_);">
<text transform="matrix(1.0882 -0.2843 5.426255e-002 0.9985 395.0986 -59.7111)" style="fill:#FFFFFF; font-family:'Montserrat-SemiBold'; font-size:14.0373px;">SUBSCRIBE</text>
</g>
</g>
<polygon class="st0" points="498,-76 380.6,-43.5 380.6,-80.2 498,-111.7 "/>
<rect x="-112.5" y="-144.1" class="st0" width="179.8" height="40.6"/>
<text transform="matrix(1.1247 0 0 1 -100.917 -118.1271)" class="st1"><tspan x="0" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-SemiBold'; font-size:15.537px;">GET </tspan><tspan x="36" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-SemiBold'; font-size:15.537px;">Y</tspan><tspan x="46" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-SemiBold'; font-size:15.537px;">OUR TICKET</tspan></text>
<rect x="-94.9" y="-84.2" class="st0" width="134.9" height="40.6"/>
<text transform="matrix(1.1247 0 0 1 -79.4111 -57.2492)" style="display:none;fill:#FFFFFF; font-family:'Montserrat-SemiBold'; font-size:15.537px;">SUBSCRIBE</text>
<g class="st1">
<defs>
<rect id="SVGID_3_" x="-162.6" y="-427.2" width="841.9" height="595.3"/>
</defs>
<clipPath id="SVGID_4_" class="st2">
<use xlink:href="#SVGID_3_" style="overflow:visible;"/>
</clipPath>
<path class="st3" d="M218.9-126.2c-0.4-0.2-1-0.3-1.9-0.3h-2.2v3.4h2.1c1,0,1.7-0.1,2-0.4c0.4-0.3,0.5-0.7,0.5-1.4
C219.5-125.5,219.3-126,218.9-126.2"/>
<path class="st3" d="M115.7-101.7h190.7v-43H115.7V-101.7z M140.9-119c-1.3,1.3-3.1,1.9-5.3,1.9c-1.9,0-3.5-0.6-4.8-1.7
c-1.3-1.1-1.9-2.5-1.9-4.2c0-1.7,0.7-3.1,2-4.3c1.3-1.1,2.9-1.7,4.8-1.7s3.5,0.5,4.8,1.6l-1.5,1.9c-0.6-0.5-1.1-0.8-1.6-0.9
c-0.5-0.2-1-0.3-1.6-0.3c-1.1,0-2,0.3-2.8,1c-0.8,0.7-1.1,1.5-1.1,2.6s0.4,2,1.1,2.6c0.7,0.7,1.6,1,2.6,1c1,0,1.8-0.2,2.5-0.5v-3.2
h2.9V-119z M153-117.2h-9.5v-11.5h9.3v2.3h-6.4v2.4h5.8v2.2h-5.8v2.4h6.7V-117.2z M164.7-126.5H161v9.3h-2.9v-9.3h-3.7v-2.2h10.2
V-126.5z M177.3-121.8v4.5h-2.9v-4.5l-4.5-7h3.1l2.8,4.3l2.8-4.3h3.1L177.3-121.8z M193.6-118.8c-1.3,1.1-2.9,1.7-4.8,1.7
c-1.9,0-3.5-0.6-4.8-1.7c-1.3-1.1-2-2.6-2-4.2c0-1.7,0.7-3.1,2-4.2c1.3-1.1,2.9-1.7,4.8-1.7c1.9,0,3.5,0.6,4.8,1.7
c1.3,1.1,2,2.6,2,4.2C195.6-121.4,194.9-119.9,193.6-118.8 M208.9-122.3c0,1.7-0.5,3-1.6,3.8c-1,0.9-2.4,1.3-4,1.3
c-1.6,0-2.9-0.5-4-1.4c-1-0.9-1.6-2.2-1.6-3.8v-6.4h2.9v6.4c0,0.9,0.2,1.6,0.7,2.2c0.5,0.5,1.1,0.8,1.9,0.8c0.8,0,1.5-0.3,1.9-0.8
c0.5-0.5,0.7-1.3,0.7-2.2v-6.4h2.9V-122.3z M219.7-117.2l-2.9-3.7h-2v3.7h-2.9v-11.5h4.9c2,0,3.4,0.3,4.3,0.9
c0.9,0.6,1.3,1.6,1.3,2.9c0,1.8-0.8,3-2.5,3.6l3.3,4.1H219.7z M239.4-126.5h-3.7v9.3h-2.9v-9.3h-3.7v-2.2h10.2V-126.5z
M244.4-117.2h-2.9v-11.5h2.9V-117.2z M250.9-120.5c0.7,0.6,1.6,1,2.6,1c1.4,0,2.6-0.5,3.5-1.5l1.9,1.7c-1.5,1.5-3.2,2.2-5.2,2.2
c-2,0-3.6-0.6-4.9-1.7c-1.3-1.1-1.9-2.5-1.9-4.2c0-1.7,0.7-3.1,2-4.3c1.3-1.1,2.9-1.7,4.8-1.7c2.1,0,3.9,0.7,5.3,2.2l-1.8,1.8
c-0.9-1-2.1-1.5-3.4-1.5c-1.1,0-2,0.3-2.8,0.9c-0.8,0.6-1.2,1.5-1.2,2.6C249.8-122,250.2-121.1,250.9-120.5 M269.9-120.6
c1.2,1.5,2.1,2.6,2.7,3.4h-3.4l-3.8-4.5l-1.3,1.3v3.3h-2.9v-11.5h2.9v4.7l4.9-4.7h3.6l-5.2,5.1
C267.8-123.1,268.7-122.1,269.9-120.6 M283.9-117.2h-9.5v-11.5h9.3v2.3h-6.4v2.4h5.8v2.2h-5.8v2.4h6.7V-117.2z M295.6-126.5h-3.7
v9.3h-2.9v-9.3h-3.7v-2.2h10.2V-126.5z"/>
<path class="st3" d="M188.8-126.8c-1.1,0-2,0.4-2.7,1.1c-0.7,0.7-1.1,1.6-1.1,2.6c0,1,0.4,1.9,1.1,2.6c0.7,0.7,1.7,1.1,2.7,1.1
c1.1,0,2-0.4,2.7-1.1c0.7-0.7,1.1-1.6,1.1-2.6c0-1-0.4-1.9-1.1-2.6C190.8-126.4,189.9-126.8,188.8-126.8"/>
<path class="st4" d="M138-119.9c-0.7,0.3-1.5,0.5-2.5,0.5c-1,0-1.9-0.3-2.6-1c-0.7-0.7-1.1-1.5-1.1-2.6s0.4-2,1.1-2.6
c0.8-0.7,1.7-1,2.8-1c0.6,0,1.1,0.1,1.6,0.3c0.5,0.2,1,0.5,1.6,0.9l1.5-1.9c-1.4-1.1-3-1.6-4.8-1.6c-1.9,0-3.4,0.6-4.8,1.7
c-1.3,1.1-2,2.6-2,4.3c0,1.7,0.6,3.1,1.9,4.2c1.3,1.1,2.9,1.7,4.8,1.7c2.3,0,4.1-0.6,5.3-1.9v-4.1H138V-119.9z"/>
<polygon class="st4" points="146.3,-121.9 152.1,-121.9 152.1,-124.1 146.3,-124.1 146.3,-126.4 152.8,-126.4 152.8,-128.7
143.4,-128.7 143.4,-117.2 153,-117.2 153,-119.5 146.3,-119.5 "/>
<polygon class="st4" points="154.5,-126.5 158.2,-126.5 158.2,-117.2 161,-117.2 161,-126.5 164.7,-126.5 164.7,-128.7
154.5,-128.7 "/>
<polygon class="st4" points="175.8,-124.5 173.1,-128.7 169.9,-128.7 174.4,-121.8 174.4,-117.2 177.3,-117.2 177.3,-121.8
181.8,-128.7 178.6,-128.7 "/>
<path class="st4" d="M193.6-127.3c-1.3-1.1-2.9-1.7-4.8-1.7c-1.9,0-3.5,0.6-4.8,1.7c-1.3,1.1-2,2.6-2,4.2c0,1.7,0.7,3.1,2,4.2
c1.3,1.1,2.9,1.7,4.8,1.7c1.9,0,3.5-0.6,4.8-1.7c1.3-1.1,2-2.6,2-4.2C195.6-124.7,194.9-126.2,193.6-127.3 M191.5-120.4
c-0.7,0.7-1.7,1.1-2.7,1.1c-1.1,0-2-0.4-2.7-1.1c-0.7-0.7-1.1-1.6-1.1-2.6c0-1,0.4-1.9,1.1-2.6s1.7-1.1,2.7-1.1
c1.1,0,2,0.4,2.7,1.1c0.7,0.7,1.1,1.6,1.1,2.6C192.6-122,192.2-121.1,191.5-120.4"/>
<path class="st4" d="M206-122.4c0,0.9-0.2,1.7-0.7,2.2c-0.5,0.5-1.1,0.8-1.9,0.8c-0.8,0-1.5-0.3-1.9-0.8c-0.5-0.5-0.7-1.3-0.7-2.2
v-6.4h-2.9v6.4c0,1.7,0.5,2.9,1.6,3.8c1,0.9,2.4,1.4,4,1.4c1.6,0,2.9-0.4,4-1.3c1-0.9,1.6-2.2,1.6-3.8v-6.4H206V-122.4z"/>
<path class="st4" d="M222.4-124.9c0-1.3-0.4-2.3-1.3-2.9c-0.9-0.6-2.3-0.9-4.3-0.9h-4.9v11.5h2.9v-3.7h2l2.9,3.7h3.6l-3.3-4.1
C221.6-121.9,222.4-123.1,222.4-124.9 M218.9-123.5c-0.4,0.3-1,0.4-2,0.4h-2.1v-3.4h2.2c0.9,0,1.6,0.1,1.9,0.3
c0.4,0.2,0.6,0.7,0.6,1.3C219.5-124.3,219.3-123.8,218.9-123.5"/>
<polygon class="st4" points="229.2,-126.5 232.9,-126.5 232.9,-117.2 235.8,-117.2 235.8,-126.5 239.4,-126.5 239.4,-128.7
229.2,-128.7 "/>
<rect x="241.5" y="-128.7" class="st4" width="2.9" height="11.5"/>
<path class="st4" d="M253.8-126.5c1.4,0,2.5,0.5,3.4,1.5l1.8-1.8c-1.4-1.4-3.2-2.2-5.3-2.2c-1.9,0-3.5,0.6-4.8,1.7
c-1.3,1.1-2,2.6-2,4.3c0,1.7,0.6,3.1,1.9,4.2c1.3,1.1,2.9,1.7,4.9,1.7c2,0,3.7-0.7,5.2-2.2l-1.9-1.7c-0.9,1-2.1,1.5-3.5,1.5
c-1,0-1.9-0.3-2.6-1c-0.7-0.6-1.1-1.5-1.1-2.6c0-1.1,0.4-1.9,1.2-2.6C251.8-126.2,252.7-126.5,253.8-126.5"/>
<path class="st4" d="M269-128.7l-4.9,4.7v-4.7h-2.9v11.5h2.9v-3.3l1.3-1.3l3.8,4.5h3.4c-0.6-0.7-1.5-1.9-2.7-3.4
c-1.2-1.5-2-2.5-2.5-3.1l5.1-5.1H269z"/>
<polygon class="st4" points="277.2,-121.9 283,-121.9 283,-124.1 277.2,-124.1 277.2,-126.4 283.7,-126.4 283.7,-128.7
274.3,-128.7 274.3,-117.2 283.9,-117.2 283.9,-119.5 277.2,-119.5 "/>
<polygon class="st4" points="285.4,-126.5 289.1,-126.5 289.1,-117.2 291.9,-117.2 291.9,-126.5 295.6,-126.5 295.6,-128.7
285.4,-128.7 "/>
<path class="st3" d="M185-64c0.4-0.2,0.6-0.5,0.6-1c0-0.5-0.2-0.8-0.5-1c-0.4-0.2-1-0.2-1.8-0.2h-1.4v2.5h1.4
C184.1-63.7,184.6-63.8,185-64"/>
<path class="st3" d="M224.1-65.8c-0.4-0.2-1-0.3-1.9-0.3H220v3.4h2.1c1,0,1.7-0.1,2-0.4c0.4-0.3,0.5-0.7,0.5-1.4
C224.7-65.2,224.5-65.6,224.1-65.8"/>
<path class="st3" d="M135.2-42.4h143v-43h-143V-42.4z M161.3-57.7c-0.9,0.6-2,1-3.4,1c-2.1,0-3.9-0.7-5.5-2l1.7-1.9
c1.4,1.1,2.7,1.6,3.9,1.6c0.5,0,0.9-0.1,1.3-0.3c0.3-0.2,0.5-0.5,0.5-0.8c0-0.3-0.2-0.6-0.5-0.8c-0.3-0.2-1-0.4-1.9-0.6
c-1.5-0.3-2.6-0.7-3.3-1.2c-0.7-0.5-1-1.3-1-2.4c0-1.1,0.4-1.9,1.3-2.5c0.9-0.6,2-0.9,3.3-0.9c0.9,0,1.7,0.1,2.6,0.4
c0.9,0.3,1.6,0.6,2.3,1.1l-1.5,1.9c-1.1-0.8-2.3-1.1-3.5-1.1c-0.5,0-0.9,0.1-1.1,0.3c-0.3,0.2-0.4,0.5-0.4,0.8
c0,0.3,0.2,0.6,0.5,0.8c0.3,0.2,1.1,0.4,2.4,0.7s2.2,0.7,2.9,1.2c0.7,0.5,1,1.3,1,2.4C162.6-59.2,162.2-58.3,161.3-57.7 M176-61.9
c0,1.7-0.5,3-1.6,3.8c-1,0.9-2.4,1.3-4,1.3s-2.9-0.4-4-1.3c-1-0.9-1.6-2.2-1.6-3.8v-6.4h2.9v6.4c0,0.9,0.2,1.6,0.7,2.2
c0.5,0.5,1.1,0.8,1.9,0.8s1.5-0.3,1.9-0.8c0.5-0.5,0.7-1.3,0.7-2.2v-6.4h2.9V-61.9z M188.4-57.9c-0.7,0.7-2,1.1-3.7,1.1H179v-11.5
h5c0.9,0,1.6,0.1,2.3,0.3c0.6,0.2,1.1,0.4,1.4,0.8c0.6,0.6,0.9,1.3,0.9,2c0,0.9-0.3,1.6-1,2c-0.2,0.2-0.4,0.3-0.5,0.3
c-0.1,0-0.2,0.1-0.5,0.2c0.8,0.2,1.4,0.5,1.9,1c0.5,0.5,0.7,1.1,0.7,1.8C189.3-59.3,189-58.6,188.4-57.9 M199.8-57.7
c-0.9,0.6-2,1-3.4,1c-2.1,0-3.9-0.7-5.5-2l1.7-1.9c1.4,1.1,2.7,1.6,3.9,1.6c0.5,0,0.9-0.1,1.3-0.3c0.3-0.2,0.5-0.5,0.5-0.8
c0-0.3-0.2-0.6-0.5-0.8c-0.3-0.2-1-0.4-1.9-0.6c-1.5-0.3-2.6-0.7-3.3-1.2c-0.7-0.5-1-1.3-1-2.4c0-1.1,0.4-1.9,1.3-2.5
c0.9-0.6,2-0.9,3.3-0.9c0.9,0,1.7,0.1,2.6,0.4c0.9,0.3,1.6,0.6,2.3,1.1l-1.5,1.9c-1.1-0.8-2.3-1.1-3.5-1.1c-0.5,0-0.9,0.1-1.1,0.3
c-0.3,0.2-0.4,0.5-0.4,0.8c0,0.3,0.2,0.6,0.5,0.8c0.3,0.2,1.1,0.4,2.4,0.7c1.2,0.3,2.2,0.7,2.9,1.2c0.7,0.5,1,1.3,1,2.4
C201.1-59.2,200.7-58.3,199.8-57.7 M206.9-60.1c0.7,0.6,1.6,1,2.6,1c1.4,0,2.6-0.5,3.5-1.5l1.9,1.7c-1.5,1.5-3.2,2.2-5.2,2.2
c-2,0-3.6-0.6-4.9-1.7c-1.3-1.1-1.9-2.5-1.9-4.2c0-1.7,0.7-3.1,2-4.3c1.3-1.1,2.9-1.7,4.8-1.7c2.1,0,3.9,0.7,5.3,2.2l-1.8,1.8
c-0.9-1-2.1-1.5-3.4-1.5c-1.1,0-2,0.3-2.8,0.9c-0.8,0.6-1.2,1.5-1.2,2.6C205.8-61.6,206.1-60.8,206.9-60.1 M224.9-56.9l-2.9-3.7h-2
v3.7h-2.9v-11.5h4.9c2,0,3.4,0.3,4.3,0.9c0.9,0.6,1.3,1.6,1.3,2.9c0,1.8-0.8,3-2.5,3.6l3.3,4.1H224.9z M233.5-56.9h-2.9v-11.5h2.9
V-56.9z M246.1-57.9c-0.7,0.7-2,1.1-3.7,1.1h-5.7v-11.5h5c0.9,0,1.6,0.1,2.3,0.3c0.6,0.2,1.1,0.4,1.4,0.8c0.6,0.6,0.9,1.3,0.9,2
c0,0.9-0.3,1.6-1,2c-0.2,0.2-0.4,0.3-0.5,0.3c-0.1,0-0.2,0.1-0.5,0.2c0.8,0.2,1.4,0.5,1.9,1c0.5,0.5,0.7,1.1,0.7,1.8
C247-59.3,246.7-58.6,246.1-57.9 M259-56.9h-9.5v-11.5h9.3v2.3h-6.4v2.4h5.8v2.2h-5.8v2.4h6.7V-56.9z"/>
<path class="st3" d="M185.7-61.4c-0.4-0.2-1.1-0.3-2.1-0.3h-1.7v2.7h2c0.8,0,1.4-0.1,1.9-0.3c0.4-0.2,0.6-0.5,0.6-1.1
C186.3-60.9,186.1-61.3,185.7-61.4"/>
<path class="st3" d="M243.4-61.4c-0.4-0.2-1.1-0.3-2.1-0.3h-1.7v2.7h2c0.8,0,1.4-0.1,1.9-0.3c0.4-0.2,0.6-0.5,0.6-1.1
C244-60.9,243.8-61.3,243.4-61.4"/>
<path class="st3" d="M242.7-64c0.4-0.2,0.6-0.5,0.6-1c0-0.5-0.2-0.8-0.5-1c-0.4-0.2-1-0.2-1.8-0.2h-1.4v2.5h1.4
C241.7-63.7,242.3-63.8,242.7-64"/>
<path class="st4" d="M158.7-63.8c-1.2-0.3-2-0.5-2.4-0.7c-0.3-0.2-0.5-0.5-0.5-0.8c0-0.3,0.1-0.6,0.4-0.8c0.3-0.2,0.7-0.3,1.1-0.3
c1.2,0,2.4,0.4,3.5,1.1l1.5-1.9c-0.6-0.5-1.4-0.9-2.3-1.1c-0.9-0.3-1.7-0.4-2.6-0.4c-1.3,0-2.4,0.3-3.3,0.9
c-0.9,0.6-1.3,1.4-1.3,2.5c0,1.1,0.3,1.9,1,2.4c0.7,0.5,1.8,0.9,3.3,1.2c1,0.2,1.6,0.4,1.9,0.6c0.3,0.2,0.5,0.5,0.5,0.8
c0,0.3-0.1,0.6-0.5,0.8c-0.3,0.2-0.7,0.3-1.3,0.3c-1.2,0-2.5-0.5-3.9-1.6l-1.7,1.9c1.6,1.3,3.5,2,5.5,2c1.4,0,2.6-0.3,3.4-1
c0.9-0.6,1.3-1.5,1.3-2.5c0-1-0.3-1.8-1-2.4C160.9-63.1,160-63.5,158.7-63.8"/>
<path class="st4" d="M173.1-62c0,0.9-0.2,1.7-0.7,2.2c-0.5,0.5-1.1,0.8-1.9,0.8c-0.8,0-1.5-0.3-1.9-0.8c-0.5-0.5-0.7-1.3-0.7-2.2
v-6.4h-2.9v6.4c0,1.7,0.5,2.9,1.6,3.8c1,0.9,2.4,1.4,4,1.4c1.6,0,2.9-0.4,4-1.3c1-0.9,1.6-2.2,1.6-3.8v-6.4h-2.9V-62z"/>
<path class="st4" d="M188.6-61.9c-0.5-0.5-1.1-0.8-1.9-1c0.2-0.1,0.4-0.2,0.5-0.2c0.1,0,0.2-0.1,0.5-0.3c0.7-0.4,1-1.1,1-2
c0-0.7-0.3-1.4-0.9-2c-0.3-0.3-0.8-0.6-1.4-0.8c-0.6-0.2-1.4-0.3-2.3-0.3h-5v11.5h5.7c1.8,0,3-0.4,3.7-1.1c0.6-0.6,0.9-1.3,0.9-2.1
C189.3-60.8,189.1-61.4,188.6-61.9 M181.9-66.2h1.4c0.9,0,1.5,0.1,1.8,0.2c0.4,0.2,0.5,0.5,0.5,1c0,0.5-0.2,0.8-0.6,1
c-0.4,0.2-1,0.2-1.8,0.2h-1.4V-66.2z M185.7-59.3c-0.4,0.2-1,0.3-1.9,0.3h-2v-2.7h1.7c1,0,1.7,0.1,2.1,0.3c0.4,0.2,0.7,0.5,0.7,1.1
S186.1-59.5,185.7-59.3"/>
<path class="st4" d="M197.2-63.8c-1.2-0.3-2-0.5-2.4-0.7c-0.3-0.2-0.5-0.5-0.5-0.8c0-0.3,0.1-0.6,0.4-0.8c0.3-0.2,0.7-0.3,1.1-0.3
c1.2,0,2.4,0.4,3.5,1.1l1.5-1.9c-0.6-0.5-1.4-0.9-2.3-1.1c-0.9-0.3-1.7-0.4-2.6-0.4c-1.3,0-2.4,0.3-3.3,0.9
c-0.9,0.6-1.3,1.4-1.3,2.5c0,1.1,0.3,1.9,1,2.4c0.7,0.5,1.8,0.9,3.3,1.2c1,0.2,1.6,0.4,1.9,0.6c0.3,0.2,0.5,0.5,0.5,0.8
c0,0.3-0.2,0.6-0.5,0.8c-0.3,0.2-0.7,0.3-1.3,0.3c-1.2,0-2.5-0.5-3.9-1.6l-1.7,1.9c1.6,1.3,3.5,2,5.5,2c1.4,0,2.6-0.3,3.4-1
c0.9-0.6,1.3-1.5,1.3-2.5c0-1-0.3-1.8-1-2.4C199.4-63.1,198.5-63.5,197.2-63.8"/>
<path class="st4" d="M209.7-66.2c1.4,0,2.5,0.5,3.4,1.5l1.8-1.8c-1.4-1.4-3.2-2.2-5.3-2.2c-1.9,0-3.5,0.6-4.8,1.7
c-1.3,1.1-2,2.6-2,4.3c0,1.7,0.6,3.1,1.9,4.2c1.3,1.1,2.9,1.7,4.9,1.7c2,0,3.7-0.7,5.2-2.2l-1.9-1.7c-0.9,1-2.1,1.5-3.5,1.5
c-1,0-1.9-0.3-2.6-1c-0.7-0.6-1.1-1.5-1.1-2.6c0-1.1,0.4-1.9,1.2-2.6C207.7-65.9,208.6-66.2,209.7-66.2"/>
<path class="st4" d="M227.6-64.6c0-1.3-0.4-2.3-1.3-2.9c-0.9-0.6-2.3-0.9-4.3-0.9h-4.9v11.5h2.9v-3.7h2l2.9,3.7h3.6l-3.3-4.1
C226.8-61.5,227.6-62.7,227.6-64.6 M224.2-63.2c-0.4,0.3-1,0.4-2,0.4H220v-3.4h2.2c0.9,0,1.6,0.1,1.9,0.3c0.4,0.2,0.6,0.7,0.6,1.3
S224.5-63.5,224.2-63.2"/>
<rect x="230.6" y="-68.4" class="st4" width="2.9" height="11.5"/>
<path class="st4" d="M244.4-62.8c0.2-0.1,0.4-0.2,0.5-0.2c0.1,0,0.2-0.1,0.5-0.3c0.7-0.4,1-1.1,1-2c0-0.7-0.3-1.4-0.9-2
c-0.3-0.3-0.8-0.6-1.4-0.8c-0.6-0.2-1.4-0.3-2.3-0.3h-5v11.5h5.7c1.8,0,3-0.4,3.7-1.1c0.6-0.6,0.9-1.3,0.9-2.1
c0-0.7-0.2-1.3-0.7-1.8C245.8-62.4,245.2-62.7,244.4-62.8 M239.6-66.2h1.4c0.9,0,1.5,0.1,1.8,0.2c0.4,0.2,0.5,0.5,0.5,1
c0,0.5-0.2,0.8-0.6,1c-0.4,0.2-1,0.2-1.8,0.2h-1.4V-66.2z M243.4-59.3c-0.4,0.2-1,0.3-1.9,0.3h-2v-2.7h1.7c1,0,1.7,0.1,2.1,0.3
c0.4,0.2,0.7,0.5,0.7,1.1S243.8-59.5,243.4-59.3"/>
<polygon class="st4" points="252.3,-61.5 258.1,-61.5 258.1,-63.7 252.3,-63.7 252.3,-66.1 258.8,-66.1 258.8,-68.4 249.4,-68.4
249.4,-56.9 259,-56.9 259,-59.1 252.3,-59.1 "/>
</g>
<text transform="matrix(1 0 0 1 -115.9365 -378.2189)" class="st1"><tspan x="0" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Bold'; font-size:16px;">B</tspan><tspan x="12.2" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Bold'; font-size:16px;">O</tspan><tspan x="25.5" y="0" style="display:inline;fill:#FFFFFF; font-family:'Montserrat-Bold'; font-size:16px;">TÕES </tspan></text>
<g class="st1">
<defs>
<rect id="SVGID_5_" x="-162.6" y="-427.2" width="841.9" height="595.3"/>
</defs>
<clipPath id="SVGID_6_" class="st2">
<use xlink:href="#SVGID_5_" style="overflow:visible;"/>
</clipPath>
<path class="st5" d="M279.3,0.4l-30.5,8.2c-1.6,0.4-3,2.2-3,3.9v30.4c0,1.7,1.3,2.7,3,2.3l30.2-7.4c1.7-0.4,3.1-2.2,3.1-3.9
l0.3-31.2C282.4,1,281,0,279.3,0.4 M278.9,34.7l-10.5,2.6l0.1-11.8l4.3-1.1l0-3.7l-4.4,1.1l0-1.6c0-0.7,0.2-1.3,0.6-1.8
c0.4-0.5,0.9-0.8,1.6-1c0.3-0.1,0.7-0.1,1.1-0.1c0.4,0,0.8,0,1.1,0.1l0.8-4.4c-1.2-0.2-2.5-0.1-3.6,0.2c-1.3,0.3-2.4,0.9-3.4,1.7
c-1,0.8-1.8,1.7-2.5,2.8c-0.6,1.1-0.9,2.3-0.9,3.7l0,1.8l-2.4,0.6l0,3.7l2.4-0.6l-0.1,11.8l-14.5,3.6l0-30.5l30.5-8.2L278.9,34.7z"
/>
<path class="st5" d="M171,2.3L141,9.7c-1.7,0.4-3,2.1-3,3.8v30c0,1.6,1.4,2.6,3,2.2l29.9-7.5c1.6-0.4,3-2.1,3-3.7L174,4.6
C174,2.9,172.7,1.9,171,2.3 M170.9,35.1l-11.9,3l-3,0.8l-15,3.8l0-30l30-7.4L170.9,35.1z"/>
<path class="st6" d="M163.3,24.6c0,3.9-3.2,7.9-7.2,8.9c-4,1-7.2-1.4-7.1-5.3c0-3.9,3.2-7.9,7.2-8.9
C160.1,18.3,163.3,20.7,163.3,24.6z"/>
<path class="st7" d="M166.1,14.3c-1.4,0.4-2.6-0.5-2.6-1.9c0-1.4,1.2-2.9,2.6-3.2c1.4-0.3,2.5,0.5,2.5,1.9
C168.6,12.5,167.5,14,166.1,14.3"/>
<path class="st5" d="M225.9,5.4L195.3,13c-1.7,0.4-3,1.9-3,3.2v24.6c0,1.3,1.4,2.1,3,1.7l30.5-7.2c1.7-0.4,3.1-1.8,3.1-3.2L229,7.2
C229,5.8,227.6,5,225.9,5.4 M225.7,32.8l-12.3,2.9l-3.1,0.7L195.2,40l0-24.6l30.7-7.5L225.7,32.8z"/>
<path class="st8" d="M225.9,7.9c0,0-13.3,17.7-15.4,18.2c-1.8,0.4-15.2-10.7-15.2-10.7"/>
<path class="st5" d="M332.1-0.4L301.6,7c-1.7,0.4-3.1,2.1-3.1,3.8v30.7c0,1.7,1.4,2.7,3.1,2.3l30.7-7.9c1.7-0.4,3-2.1,3-3.8
l-0.1-30.3C335.1,0.2,333.7-0.8,332.1-0.4 M332.2,32.9L320,36l-3.1,0.8l-15.4,3.9l0-30.6l30.5-7.5L332.2,32.9z"/>
<path class="st5" d="M310.4,16.9c0.4,0.3,0.6,0.7,0.6,1.4c0,0.6-0.2,1.2-0.6,1.6c-0.4,0.5-0.9,0.8-1.5,0.9
c-0.6,0.1-1.1,0.1-1.4-0.2c-0.4-0.3-0.6-0.7-0.6-1.3c0-0.6,0.2-1.2,0.6-1.6c0.4-0.5,0.9-0.8,1.4-0.9
C309.5,16.6,310,16.7,310.4,16.9 M307,22.9l3.7-0.9l0,13l-3.7,1L307,22.9z"/>
<path class="st5" d="M326,19.4c0.9,0.7,1.3,1.8,1.3,3.3l0,8.1l-3.7,0.9l0-7c0-0.8-0.2-1.4-0.7-1.8c-0.5-0.4-1.1-0.4-1.9-0.2
c-0.9,0.2-1.6,0.7-2.2,1.5c-0.5,0.8-0.8,1.6-0.8,2.6l0,6.4l-3.7,0.9l0-13l3.7-0.9l0,2.3c0.9-1.8,2.4-3,4.5-3.5
C324,18.6,325.2,18.7,326,19.4"/>
<polyline class="st9" points="409.3,12 422.2,24.5 409.3,36 "/>
<rect x="459.9" y="8.8" class="st10" width="38" height="38"/>
<polyline class="st11" points="474.8,19.6 482.4,28 474.8,36.1 "/>
</g>
<rect x="-162.6" y="-427.2" class="st12" width="841.9" height="595.3"/>
<g id="email">
<path d="M-77.9-0.9h-36.8c-2,0-3.7,1.3-3.7,2.9v28.9c0,1.6,1.7,2.9,3.7,2.9h36.8c2,0,3.7-1.3,3.7-2.9V2
C-74.3,0.4-75.9-0.9-77.9-0.9 M-77.9,30.9h-14.7h-3.7h-18.4V2h36.8V30.9z"/>
<path class="st13" d="M-114.8,2c0,0,16.2,16.9,18.4,16.9C-93.7,18.8-77.9,2-77.9,2"/>
</g>
<g id="linkedin">
<defs>
<rect id="SVGID_7_" x="-162.6" y="-427.2" width="841.9" height="595.3"/>
</defs>
<clipPath id="SVGID_8_">
<use xlink:href="#SVGID_7_" style="overflow:visible;"/>
</clipPath>
<path class="st14" d="M88.1,1.2H59.2c-1.6,0-2.9,1.3-2.9,2.9V33c0,1.6,1.3,2.9,2.9,2.9h28.9c1.6,0,2.9-1.3,2.9-2.9V4.1
C91,2.5,89.7,1.2,88.1,1.2 M88.1,33H76.5h-2.9H59.2V4.1h28.9V33z"/>
<g class="st14">
<text transform="matrix(1 0 0 1 62.6543 29.7928)" style="font-family:'Montserrat-SemiBold'; font-size:22.7779px;">in</text>
</g>
</g>
<g id="facebook">
<path d="M-24.5,0h-28.9c-1.6,0-2.9,1.3-2.9,2.9v28.9c0,1.6,1.3,2.9,2.9,2.9h28.9c1.6,0,2.9-1.3,2.9-2.9V2.9
C-21.6,1.3-22.9,0-24.5,0 M-24.5,31.8h-11.6H-39h-14.4V2.9h28.9V31.8z"/>
<path d="M-33.9,14.2c-0.4,0.3-0.6,0.9-0.6,1.5v1.5h4.1v3.5h-4.1v13.2h-4.9V20.7h-2.3v-3.5h2.3v-1.7c0-1.3,0.3-2.3,0.9-3.2
c0.6-0.9,1.3-1.6,2.3-2c1-0.5,2-0.7,3.2-0.7c1.1,0,2.3,0.2,3.4,0.7l-0.7,3.9c-0.3-0.1-0.7-0.2-1-0.3c-0.4-0.1-0.7-0.1-1-0.1
C-33,13.7-33.5,13.9-33.9,14.2"/>
</g>
<g id="instagram">
<path d="M31.8,0H2.9C1.3,0,0,1.3,0,2.9v28.9c0,1.6,1.3,2.9,2.9,2.9h28.9c1.6,0,2.9-1.3,2.9-2.9V2.9C34.6,1.3,33.3,0,31.8,0
M31.8,31.8H20.2h-2.9H2.9V2.9h28.9V31.8z"/>
<circle class="st13" cx="17.5" cy="19.7" r="6.9"/>
<path class="st15" d="M27,10.4c-1.4,0-2.5-1.1-2.5-2.4c0-1.4,1.1-2.5,2.5-2.5c1.3,0,2.5,1.1,2.5,2.5C29.5,9.3,28.4,10.4,27,10.4"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 26 KiB

6511
website/imgs/logo-enei.ai Executable file

File diff suppressed because one or more lines are too long

21
website/imgs/logo-enei.svg Executable file
View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 225 335" style="enable-background:new 0 0 225 335;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<path id="linha" d="M220.7,5.4L5.6,63v269.1l215.2-57.6V5.4z"/>
<path id="ee" class="st0" d="M61.3,97.8c13.2-3.5,19.8-5.2,33.3-8.8c0,3.8,0,5.9,0,10c-9.4,2.5-14.1,3.8-23.4,6.2c0,5.3,0,8,0,13.6
c8.9-2.4,13.4-3.6,22.5-6c0,4.4,0,6.7,0,11.4c-9.1,2.4-13.6,3.6-22.5,6c0,6,0,9,0,15.2c9.6-2.5,14.5-3.8,24.4-6.5
c0,4.8,0,7.3,0,12.2c-13.9,3.7-20.9,5.6-34.2,9.1V97.8z"/>
<path id="n" class="st0" d="M153.7,129.1c0.5-0.1,0.8-0.2,1.4-0.4c-0.1-24.4-0.1-36.5-0.2-55.8c4.1-1.1,6.1-1.6,10.2-2.7v62.2
c-7.7,2.1-11.6,3.2-19.5,5.3c-2.6-24-4-35.9-6.6-55.4c-0.6,0.2-0.8,0.2-1.4,0.4c0.1,20.1,0.2,32.4,0.4,57.1
c-4.1,1.1-6.1,1.6-10.2,2.7c-0.1-20.7-0.2-41.5-0.4-62.2c7.9-2.1,11.9-3.2,19.8-5.3C149.8,93.6,151.1,105.3,153.7,129.1"/>
<path id="e" class="st0" d="M61.3,204.9c12.9-3.4,19.7-5.2,33.3-8.9c0,4.9,0,7.4,0,12.2c-9.6,2.6-14.4,3.8-23.6,6.3
c0,6.1,0,9.1,0,15c8.9-2.4,13.5-3.6,22.7-6.1c0,4.6,0,6.9,0,11.4c-9.2,2.5-13.8,3.7-22.7,6.1c0,5.7,0,8.5,0,13.8
c9.6-2.6,14.6-3.9,24.6-6.6c0,4.1,0,6.1,0,10c-14.2,3.8-21.2,5.7-34.3,9.2V204.9z"/>
<path id="i" class="st0" d="M128.7,186.9c14.5-3.9,21.7-5.9,35.5-9.7c0,4.9,0,7.3,0,12.1c-4.9,1.4-7.4,2-12.5,3.4
c0.1,17.1,0.1,25.4,0.2,40.1c5-1.4,7.5-2.1,12.3-3.4c0,4.1,0,6.1,0,10c-13.3,3.7-20.5,5.7-35.1,9.7c0-3.8,0-5.8-0.1-10
c5.2-1.4,7.8-2.1,13-3.6c-0.1-14.7-0.2-23-0.3-40.1c-5.1,1.4-7.7,2.1-12.9,3.5C128.8,194.2,128.8,191.8,128.7,186.9"/>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

View File

@ -8,13 +8,13 @@
<meta content="width" name="MobileOptimized">
<meta content="true" name="HandheldFriendly">
<!-- Place favicon.ico in the root directory -->
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#000000">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="theme-color" content="#ff0000">
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png">
<link rel="manifest" href="site.webmanifest">
<link rel="mask-icon" href="safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<title>ENEI'19</title>
<meta name="description"
content="Página do Encontro Nacional de Estudantes de Informática 2019, no Instituto Superior de Engenharia de Coimbra (ISEC) a realizar-se entre 12 e 15 de abril de 2019. O ENEI pretende oferecer aos estudantes de todo o país um evento que promove a aprendizagem, a troca de ideias e o convívio, enquanto tenta criar fortes ligações com o mundo empresarial.">
@ -43,34 +43,55 @@
<li class="unavailable">Programa</li>
<li><a href="#precos" title="Preços">Preços</a></li>
<li class="unavailable">App</li>
<li class="unavailable">Patrocinadores</li>
<li><a href="#sponsors" title="Sponsors">Sponsors</a></li>
<li><a href="#faqs" title="Faq's">Faq's</a></li>
</ul>
</nav>
</header>
<!-- apresentation section -->
<div id="apresentation">
<img src="imgs/logo-enei.png" alt="Logótipo ENEI" width="221" height="333" class="logo-enei">
<div id="apresentation" class="">
<!-- <img src="imgs/logo-enei.png" alt="Logótipo ENEI" width="221" height="333" class="logo-enei"> -->
<svg version="1.1" id="logo-enei" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 225 335" style="enable-background:new 0 0 225 335;" xml:space="preserve">
<path id="linha" d="M220.7,5.4L5.6,63v269.1l215.2-57.6V5.4z" />
<path id="ee" class="letras-logo" d="M61.3,97.8c13.2-3.5,19.8-5.2,33.3-8.8c0,3.8,0,5.9,0,10c-9.4,2.5-14.1,3.8-23.4,6.2c0,5.3,0,8,0,13.6
c8.9-2.4,13.4-3.6,22.5-6c0,4.4,0,6.7,0,11.4c-9.1,2.4-13.6,3.6-22.5,6c0,6,0,9,0,15.2c9.6-2.5,14.5-3.8,24.4-6.5
c0,4.8,0,7.3,0,12.2c-13.9,3.7-20.9,5.6-34.2,9.1V97.8z" />
<path id="n" class="letras-logo"
d="M153.7,129.1c0.5-0.1,0.8-0.2,1.4-0.4c-0.1-24.4-0.1-36.5-0.2-55.8c4.1-1.1,6.1-1.6,10.2-2.7v62.2
c-7.7,2.1-11.6,3.2-19.5,5.3c-2.6-24-4-35.9-6.6-55.4c-0.6,0.2-0.8,0.2-1.4,0.4c0.1,20.1,0.2,32.4,0.4,57.1
c-4.1,1.1-6.1,1.6-10.2,2.7c-0.1-20.7-0.2-41.5-0.4-62.2c7.9-2.1,11.9-3.2,19.8-5.3C149.8,93.6,151.1,105.3,153.7,129.1" />
<path id="e" class="letras-logo" d="M61.3,204.9c12.9-3.4,19.7-5.2,33.3-8.9c0,4.9,0,7.4,0,12.2c-9.6,2.6-14.4,3.8-23.6,6.3
c0,6.1,0,9.1,0,15c8.9-2.4,13.5-3.6,22.7-6.1c0,4.6,0,6.9,0,11.4c-9.2,2.5-13.8,3.7-22.7,6.1c0,5.7,0,8.5,0,13.8
c9.6-2.6,14.6-3.9,24.6-6.6c0,4.1,0,6.1,0,10c-14.2,3.8-21.2,5.7-34.3,9.2V204.9z" />
<path id="i" class="letras-logo" d="M128.7,186.9c14.5-3.9,21.7-5.9,35.5-9.7c0,4.9,0,7.3,0,12.1c-4.9,1.4-7.4,2-12.5,3.4
c0.1,17.1,0.1,25.4,0.2,40.1c5-1.4,7.5-2.1,12.3-3.4c0,4.1,0,6.1,0,10c-13.3,3.7-20.5,5.7-35.1,9.7c0-3.8,0-5.8-0.1-10
c5.2-1.4,7.8-2.1,13-3.6c-0.1-14.7-0.2-23-0.3-40.1c-5.1,1.4-7.7,2.1-12.9,3.5C128.8,194.2,128.8,191.8,128.7,186.9" />
</svg>
</div>
<!-- enei section -->
<section id="enei">
<div class="container">
<div class="col-lg-7 col-sm-7">
<div class="pre-h1">12 A 15 ABRIL DE 2019</div>
<h1>ENEI</h1>
<hr>
<p>O Encontro Nacional de Estudantes de Informática é um dos maiores eventos na área da tecnologia em
Portugal
reunindo estudantes de informática de todas as faculdades do país.</p>
<p>Reconhecido pela sua qualidade e variedade de temas e atividades, tem como prioridade o contacto
entre
participantes e empresas, bem como a socialização, o convívio e a troca de experiências e
conhecimentos
entre os presentes.</p>
<div class="row">
<div class="col-lg-7 col-sm-7">
<div class="pre-h1">12 A 15 ABRIL DE 2019</div>
<h1>ENEI</h1>
<hr>
<p>O Encontro Nacional de Estudantes de Informática é um dos maiores eventos na área da tecnologia
em
Portugal
reunindo estudantes de informática de todas as faculdades do país.</p>
<p>Reconhecido pela sua qualidade e variedade de temas e atividades, tem como prioridade o contacto
entre
participantes e empresas, bem como a socialização, o convívio e a troca de experiências e
conhecimentos
entre os presentes.</p>
</div>
</div>
</div>
</section>
<!-- count down section -->
<aside id="countdown">
<div>
@ -94,104 +115,130 @@
<!-- precos section -->
<section id="precos">
<div class="container">
<div class="col-lg-10 col-lg-offset-1 col-sm-12 col-xs-10 col-xs-offset-1">
<div class="pre-h1">ENEI'19</div>
<h1>Preços</h1>
<hr>
<div class="price-block">
<div class="type">Early-Bird</div>
<div>
<div class="individual-price">
<div class="price"><span></span>25</div>
<div class="label">Grupo</div>
<span class="options">*Alimentação e alojamento (pavilhão) incluídos</span>
</div>
</div>
<a href="https://tickets.enei.pt/group" title="Comprar" target="_blank" class="buy-button">Comprar</a>
</div>
<div class="price-block">
<div class="type">Early-Bird</div>
<div>
<div class="individual-price">
<div class="price"><span></span>30</div>
<div class="label">Individual</div>
<span class="options">*Alimentação e alojamento (pavilhão) incluídos</span>
<div class="row">
<div class="col-lg-10 col-lg-offset-1 col-sm-12 col-sm-offset-0 col-xs-10 col-xs-offset-1">
<div class="pre-h1">ENEI'19</div>
<h1>Preços</h1>
<hr>
<div class="price-block">
<div class="type">Early-Bird</div>
<div>
<div class="individual-price">
<div class="price"><span></span>25</div>
<div class="label">Grupo</div>
<span class="options">*Alimentação e alojamento (pavilhão) incluídos</span>
</div>
</div>
<a href="https://tickets.enei.pt/group" title="Comprar" target="_blank"
class="buy-button">Comprar</a>
</div>
<a href="https://tickets.enei.pt" title="Comprar" target="_blank"class="buy-button">Comprar</a>
</div>
<div class="price-block disable">
<div class="type">Pontual</div>
<div class="individual-price">
<div class="price"><span></span>20</div>
<div class="label">Individual</div>
<span class="options">*Alimentação incluída</span>
<div class="price-block">
<div class="type">Early-Bird</div>
<div>
<div class="individual-price">
<div class="price"><span></span>30</div>
<div class="label">Individual</div>
<span class="options">*Alimentação e alojamento (pavilhão) incluídos</span>
</div>
</div>
<a href="https://tickets.enei.pt" title="Comprar" target="_blank" class="buy-button">Comprar</a>
</div>
<div class="price-block disable">
<div class="type">Pontual</div>
<div class="individual-price">
<div class="price"><span></span>20</div>
<div class="label">Individual</div>
<span class="options">*Alimentação incluída</span>
</div>
<span class="buy-button">Brevemente</span>
</div>
<span class="buy-button">Brevemente</span>
</div>
</div>
</div>
</section>
<!-- Faqs -->
<!-- sponsors section -->
<section id="sponsors">
<div class="container">
<div class="row">
<div class="col-lg-4 col-lg-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1">
<h1>Main Sponsor</h1>
<hr>
</div>
</div>
<div class="row">
<div class="col-lg-10 col-lg-offset-1 col-sm-8 col-sm-offset-2 col-xs-10 col-xs-offset-1">
<a href="https://www.criticalsoftware.com/pt/homepage" title="Critical Software" target="_blank"
class="sponsor-image"><img src="imgs/critical-sponsor.svg" alt="Critical Software Image"></a>
</div>
</div>
</div>
</section>
<!-- faqs section -->
<section id="faqs">
<div class="container">
<div class="col-lg-5">
<div class="pre-h1">Perguntas Frequentes</div>
<h1>Faq</h1>
<hr>
<div class="row">
<div class="col-lg-5">
<div class="pre-h1">Perguntas Frequentes</div>
<h1>Faq</h1>
<hr>
</div>
</div>
<div class="col-lg-10">
<ul id="accordion">
<li>
<a href="#" title="O que é o ENEI?" rel="nofollow" class="toggle">O que é o ENEI?</a>
<div class="content-accordion">
<p>O Encontro Nacional de Estudantes de Informática (ENEI) é um evento que pretende
oferecer aos estudantes de todo o país um evento que promove a aprendizagem, a troca de
ideias e o convívio, enquanto tenta criar fortes ligações com o mundo empresarial.</p>
<div class="row">
<div class="col-lg-10">
<ul id="accordion">
<li>
<a href="#" title="O que é o ENEI?" rel="nofollow" class="toggle">O que é o ENEI?</a>
<div class="content-accordion">
<p>O Encontro Nacional de Estudantes de Informática (ENEI) é um evento que pretende
oferecer aos estudantes de todo o país um evento que promove a aprendizagem, a troca
de
ideias e o convívio, enquanto tenta criar fortes ligações com o mundo empresarial.
</p>
<p> A 13ª edição do evento terá lugar no Instituto Superior de Engenharia de Coimbra (ISEC)
entre os dias 12 e 15 de abril de 2019 e a organização espera contar com 700 estudantes
que poderão participar em palestras, workshops e painéis de discussão, contando com
oradores de renome nacional e internacional.</p>
<p>Esta versão do evento também incluirá os tradicionais momentos de diversão noturnos
que
muito apelam a todos os participantes das antigas edições e são uma excelente via de
networking e transferência de conhecimento!</p>
</div>
</li>
<li>
<a href="#" title="Onde me posso inscrever?" rel="nofollow" class="toggle">Onde me posso
inscrever?</a>
<div class="content-accordion">
<p>Podes adquirir o teu bilhete <a href="https://tickets.enei.pt" title="Aqui">AQUI</a>.
</p>
</div>
</li>
<li>
<a href="#" title="Quando é o programa vai estar disponível?" rel="nofollow"
class="toggle">Quando é o programa vai estar disponível?</a>
<div class="content-accordion">
<p>O programa vai sendo lançado nas próximas semanas de forma iterativa.</p>
<p>Esta versão do evento também incluirá os tradicionais momentos de diversão noturnos que
muito apelam a todos os participantes das antigas edições e são uma excelente via de
networking e transferência de conhecimento!</p>
</div>
</li>
<li>
<a href="#" title="Onde me posso inscrever?" rel="nofollow" class="toggle">Onde me posso
inscrever?</a>
<div class="content-accordion">
<p>Podes adquirir o teu bilhete <a href="https://tickets.enei.pt" title="Aqui">AQUI</a>.</p>
</div>
</li>
<li>
<a href="#" title="Quando é o programa vai estar disponível?" rel="nofollow" class="toggle">Quando é o programa vai estar disponível?</a>
<div class="content-accordion">
<p>O programa vai sendo lançado nas próximas semanas de forma iterativa.</p>
</div>
</li>
<li>
<a href="#" title="Quem pode participar no evento?" rel="nofollow" class="toggle">Quem pode
participar no evento?</a>
<div class="content-accordion">
<p>Podem participar no ENEI19 todos os estudantes de cursos relacionados com informática e
todos aqueles que querem aprender mais sobre os temas abordados!</p>
</div>
</li>
<li>
<a href="#" title="Tenho acesso a todas as sessões?" rel="nofollow" class="toggle">Tenho
acesso a todas as sessões?</a>
<div class="content-accordion">
<p>Não, as palestras e workshops necessitam de inscrições visto que têm lugares limitados.</p>
<p>Brevemente poderás te inscrever na aplicação móvel do ENEI'19!</p>
</div>
</li>
</ul>
</div>
</li>
<li>
<a href="#" title="Quem pode participar no evento?" rel="nofollow" class="toggle">Quem pode
participar no evento?</a>
<div class="content-accordion">
<p>Podem participar no ENEI19 todos os estudantes de cursos relacionados com
informática e
todos aqueles que querem aprender mais sobre os temas abordados!</p>
</div>
</li>
<li>
<a href="#" title="Tenho acesso a todas as sessões?" rel="nofollow" class="toggle">Tenho
acesso a todas as sessões?</a>
<div class="content-accordion">
<p>Não, as palestras e workshops necessitam de inscrições visto que têm lugares
limitados.</p>
<p>Brevemente poderás te inscrever na aplicação móvel do ENEI'19!</p>
</div>
</li>
</ul>
</div>
</div>
</div>
</section>
@ -199,25 +246,29 @@
<!-- social network section -->
<aside id="social-network">
<div class="container">
<div class="col-lg-8 col-lg-offset-2">
<h2>Segue-nos</h2>
<ul>
<li><a href="https://www.facebook.com/ENEIConf/" title="Facebook" target="_blank"
class="icon-facebook"></a></li>
<li><a href="https://www.instagram.com/eneiconf/" title="Instagram" target="_blank"
class="icon-instagram"></a></li>
<li><a href="https://www.linkedin.com/company/enei/" title="Linkedin" target="_blank"
class="icon-linkedin"></a></li>
<li><a href="mailto:geral@enei.pt" title="Email" target="_blank" class="icon-email"></a></li>
</ul>
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<h2>Segue-nos</h2>
<ul>
<li><a href="https://www.facebook.com/ENEIConf/" title="Facebook" target="_blank"
class="icon-facebook"></a></li>
<li><a href="https://www.instagram.com/eneiconf/" title="Instagram" target="_blank"
class="icon-instagram"></a></li>
<li><a href="https://www.linkedin.com/company/enei/" title="Linkedin" target="_blank"
class="icon-linkedin"></a></li>
<li><a href="mailto:geral@enei.pt" title="Email" target="_blank" class="icon-email"></a></li>
</ul>
</div>
</div>
</div>
</aside>
<!-- footer -->
<footer>
<div class="container">
<div class="col-lg-12">
<p>© 2019 ENEI . Todos os direitos reservados</p>
<div class="row">
<div class="col-lg-12">
<p>© 2019 ENEI . Todos os direitos reservados</p>
</div>
</div>
</div>
</footer>
@ -227,15 +278,15 @@
<script type="text/javascript" src="js/scripts.js"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'UA-130588243-1');
</script>
gtag('config', 'UA-130588243-1');
</script>
</body>
</html>

View File

@ -42,8 +42,54 @@ function changeMainMenu(scrollMovement) {
}
}
// cookies code
function setCookie(name, value, days) {
var expires = "";
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + (value || "") + expires + "; path=/";
}
function getCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
function eraseCookie(name) {
document.cookie = name + '=; Max-Age=-99999999;';
}
// se o cookie ja existir
/*
var cookie = getCookie('ppkcookie');
if (cookie) {
document.getElementById("apresentation").classList.add("animated");
} else {
// add cookie
setCookie('ppkcookie', 'animatedLogo', 3);
setTimeout(function () {
document.getElementById("apresentation").classList.add("animated");
}, 1100);
}
*/
// end cookies code
$(document).ready(function () {
// inicial animation
setTimeout(function () {
document.getElementById("apresentation").classList.add("animated");
}, 1200);
// main menu anchors
$("#main-menu ul li a").click(function () {
var hrefMenuClicked = $(this).attr("href");

View File

@ -8,6 +8,54 @@
font-weight: normal;
font-style: normal;
}*/
@-webkit-keyframes animateLineLogo {
15% {
fill: #c7403a;
}
30% {
fill: #81898e;
}
45% {
fill: #993d3f;
}
100% {
fill: #000000;
}
}
@keyframes animateLineLogo {
15% {
fill: #c7403a;
}
30% {
fill: #81898e;
}
45% {
fill: #993d3f;
}
100% {
fill: #000000;
}
}
@-webkit-keyframes animateLettersLogo {
from {
fill: transparent;
}
to {
fill: #ffffff;
}
}
@keyframes animateLettersLogo {
from {
fill: transparent;
}
to {
fill: #ffffff;
}
}
@font-face {
font-family: "icomoon";
src: url("fonts/icomoon.eot?sozc77");
@ -102,7 +150,7 @@ aside {
section,
article,
aside {
padding: 50px 0;
padding: 55px 0;
}
}
@ -110,7 +158,7 @@ aside {
section,
article,
aside {
padding: 40px 0;
padding: 45px 0;
}
}
@ -514,31 +562,16 @@ hr::after {
}
}
#apresentation {
height: 100vh;
background: url("imgs/coimbra-image.jpg") no-repeat center;
background-size: cover;
background-attachment: fixed;
position: relative;
}
@media (max-width: 769px) {
#apresentation {
height: 60vh;
background-position: bottom right;
background-attachment: inherit;
}
}
#apresentation .logo-enei {
#logo-enei {
width: 221px;
position: absolute;
position: fixed;
top: calc(50% - 166px);
left: calc(50% - 110px);
z-index: 10;
}
@media (max-width: 1024px) {
#apresentation .logo-enei {
#logo-enei {
width: 175px;
top: calc(50% - 131px);
left: calc(50% - 87px);
@ -546,13 +579,81 @@ hr::after {
}
@media (max-width: 769px) {
#apresentation .logo-enei {
#logo-enei {
width: 125px;
top: calc(50% - 70px);
left: calc(50% - 62px);
}
}
#logo-enei #linha {
fill: transparent;
-webkit-animation: animateLineLogo 1s 0.25s forwards;
/* Safari & Chrome */
/* Firefox */
animation: animateLineLogo 1s 0.25s forwards;
}
#logo-enei .letras-logo {
fill: transparent;
-webkit-animation: animateLettersLogo 0.25s 0.7s forwards ease-in;
animation: animateLettersLogo 0.25s 0.7s forwards ease-in;
}
#apresentation {
height: 100vh;
background: url("imgs/coimbra-image.jpg") no-repeat center;
background-size: cover;
background-attachment: fixed;
z-index: 10;
position: relative;
}
#apresentation::after {
content: " ";
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #ffffff;
opacity: 1;
-webkit-transition: opacity 150ms ease-out;
transition: opacity 150ms ease-out;
}
#apresentation.animated {
z-index: 0;
}
#apresentation.animated::after {
opacity: 0;
}
#apresentation.animated #logo-enei {
position: absolute;
}
#apresentation.animated #linha {
fill: #000000;
-webkit-animation: none;
animation: none;
}
#apresentation.animated .letras-logo {
fill: #ffffff;
-webkit-animation: none;
animation: none;
}
@media (max-width: 769px) {
#apresentation {
height: 60vh;
background-position: bottom right;
background-attachment: inherit;
}
}
#enei {
background-color: #ffffff;
background: url("imgs/cubes-image.png") no-repeat top right;
@ -977,10 +1078,6 @@ hr::after {
background-size: 30%;
}
#faqs {
background-color: #eeeeee;
}
#accordion li {
margin-bottom: 15px;
}
@ -1035,33 +1132,46 @@ hr::after {
margin-bottom: 5px;
}
#patrocinadores {
#sponsors {
background-color: #eeeeee;
text-align: center;
}
#patrocinadores h1 {
color: #000000;
font-weight: 400;
}
#patrocinadores hr {
#sponsors hr {
display: table;
margin: 0 auto;
width: 60%;
background-color: #353535;
}
#patrocinadores hr::after {
#sponsors hr::after {
left: 50%;
transform: translateX(-50%);
-webkit-transform: translateX(-50%);
}
#sponsors .sponsor-image {
display: block;
margin: 40px auto 0;
max-width: 200px;
-webkit-filter: grayscale(0.2);
filter: grayscale(0.2);
-webkit-transform: scale(1);
transform: scale(1);
-webkit-transition: all 150ms ease-in-out;
transition: all 150ms ease-in-out;
}
#sponsors .sponsor-image:hover {
-webkit-filter: grayscale(0);
filter: grayscale(0);
-webkit-transform: scale(1.03);
transform: scale(1.03);
}
#social-network {
text-align: center;
background-color: #000000;
padding: 75px 0;
}
#social-network h2 {

File diff suppressed because one or more lines are too long

View File

@ -65,6 +65,59 @@ $bold: 700;
}
}
@-webkit-keyframes animateLineLogo {
15% {
fill: #c7403a;
}
30% {
fill: #81898e;
}
45% {
fill: #993d3f;
}
100% {
fill: #000000;
}
}
@-moz-keyframes animateLineLogo {
15% {
fill: #c7403a;
}
30% {
fill: #81898e;
}
45% {
fill: #993d3f;
}
100% {
fill: #000000;
}
}
@keyframes animateLineLogo {
15% {
fill: #c7403a;
}
30% {
fill: #81898e;
}
45% {
fill: #993d3f;
}
100% {
fill: #000000;
}
}
@keyframes animateLettersLogo {
from {
fill: transparent;
}
to {
fill: #ffffff;
}
}
//icons
$icomoon-font-path: "fonts" !default;
@ -174,10 +227,10 @@ article,
aside {
padding: 100px 0;
@include portable {
padding: 50px 0;
padding: 55px 0;
}
@include mobile {
padding: 40px 0;
padding: 45px 0;
}
}
@ -315,7 +368,7 @@ select {
font-family: "Bai Jamjuree", sans-serif;
font-size: 17px;
line-height: 21px;
color: #353535;
color: $dark-grey;
display: table;
margin: 0 auto;
background-color: white;
@ -480,31 +533,70 @@ hr {
}
}
#logo-enei {
width: 221px;
@include position(fixed, calc(50% - 166px), null, null, calc(50% - 110px));
z-index: 10;
@include portable {
width: 175px;
top: calc(50% - 131px);
left: calc(50% - 87px);
}
@include mobile {
width: 125px;
top: calc(50% - 70px);
left: calc(50% - 62px);
}
#linha {
fill: transparent;
-webkit-animation: animateLineLogo 1s 0.25s forwards; /* Safari & Chrome */
-moz-animation: animateLineLogo 1s 0.25s forwards; /* Firefox */
animation: animateLineLogo 1s 0.25s forwards;
}
.letras-logo {
fill: transparent;
animation: animateLettersLogo 0.25s 0.7s forwards ease-in;
}
}
#apresentation {
height: 100vh;
background: url("imgs/coimbra-image.jpg") no-repeat center;
background-size: cover;
background-attachment: fixed;
z-index: 10;
position: relative;
&::after {
content: " ";
@include position(fixed, 0, null, null, 0);
@include size(100%, 100%);
background-color: $white;
opacity: 1;
transition: opacity 150ms ease-out;
}
&.animated {
z-index: 0;
&::after {
opacity: 0;
}
#logo-enei {
position: absolute;
}
#linha {
fill: $black;
animation: none;
}
.letras-logo {
fill: $white;
animation: none;
}
}
@include mobile {
height: 60vh;
background-position: bottom right;
background-attachment: inherit;
}
.logo-enei {
width: 221px;
@include position(absolute, calc(50% - 166px), null, null, calc(50% - 110px));
@include portable {
width: 175px;
top: calc(50% - 131px);
left: calc(50% - 87px);
}
@include mobile {
width: 125px;
top: calc(50% - 70px);
left: calc(50% - 62px);
}
}
}
#enei {
@ -806,10 +898,6 @@ hr {
background-size: 30%;
}
#faqs {
background-color: #eeeeee;
}
#accordion {
li {
margin-bottom: 15px;
@ -857,13 +945,9 @@ hr {
}
}
#patrocinadores {
#sponsors {
background-color: $light-grey;
text-align: center;
h1 {
color: $black;
font-weight: $regular;
}
hr {
display: table;
margin: 0 auto;
@ -875,12 +959,23 @@ hr {
-webkit-transform: translateX(-50%);
}
}
.sponsor-image {
display: block;
margin: 40px auto 0;
max-width: 200px;
filter: grayscale(0.2);
transform: scale(1);
transition: all $transition-time ease-in-out;
&:hover {
filter: grayscale(0);
transform: scale(1.03);
}
}
}
#social-network {
text-align: center;
background-color: $black;
padding: 75px 0;
h2 {
color: $white;
margin-bottom: 30px;

0
website/regulamento_geral.pdf Normal file → Executable file
View File

View File

@ -8,11 +8,11 @@
<meta content="width" name="MobileOptimized">
<meta content="true" name="HandheldFriendly">
<!-- Place favicon.ico in the root directory -->
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png">
<link rel="manifest" href="site.webmanifest">
<link rel="mask-icon" href="safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<title>ENEI'19 - Bilhete Único</title>