Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 14 additions & 7 deletions backend/demo/demo.iml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
<setting name="validation-enabled" value="true" />
<setting name="provider-name" value="Hibernate" />
<datasource-mapping>
<factory-entry name="demo" />
<factory-entry name="entityManagerFactory" />
</datasource-mapping>
<naming-strategy-map />
Expand Down Expand Up @@ -61,12 +62,9 @@
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.18" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.3.18" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.18" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.36" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aspects:5.3.18" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-thymeleaf:2.6.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.6.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.6.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.6.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.6.6" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.11" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.11" level="project" />
Expand All @@ -75,10 +73,6 @@
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.36" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.29" level="project" />
<orderEntry type="library" name="Maven: org.thymeleaf:thymeleaf-spring5:3.0.15.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.thymeleaf:thymeleaf:3.0.15.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.attoparser:attoparser:2.0.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.unbescape:unbescape:1.1.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.thymeleaf.extras:thymeleaf-extras-java8time:3.0.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.webjars:bootstrap:4.0.0-2" level="project" />
<orderEntry type="library" name="Maven: org.webjars:jquery:3.0.0" level="project" />
Expand Down Expand Up @@ -128,5 +122,18 @@
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.18" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.3.18" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.8.4" level="project" />
<orderEntry type="library" name="Maven: org.thymeleaf.extras:thymeleaf-extras-springsecurity5:3.0.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.36" level="project" />
<orderEntry type="library" name="Maven: org.thymeleaf:thymeleaf-spring5:3.0.15.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.thymeleaf:thymeleaf:3.0.15.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.attoparser:attoparser:2.0.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.unbescape:unbescape:1.1.6.RELEASE" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.springframework.boot:spring-boot-devtools:2.6.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.6.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.6.6" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.security:spring-security-test:5.6.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.security:spring-security-core:5.6.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.security:spring-security-crypto:5.6.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.security:spring-security-web:5.6.2" level="project" />
</component>
</module>
35 changes: 31 additions & 4 deletions backend/demo/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@
</properties>
<dependencies>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
Expand All @@ -47,6 +47,33 @@
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity5</artifactId>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>

</dependencies>

<build>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,51 @@

import com.example.demo.domain.entities.Event;
import com.example.demo.domain.service.IEventService;
import com.example.demo.repositories.EventRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

@Controller

public class ViewController {
@Autowired
private IEventService eventService;
@Autowired
private EventRepository eventRepository;
@GetMapping({"/","/home", "/index"})
public String eventSlider(Model model){
List<Event> eventSlider = eventService.eventList();
public String eventSlider(HttpServletRequest request, Model model){
List<Event> eventSlider = eventService.listHighlights();
List<Event> eventList = eventService.eventList();
int page = 0; //default page number is 0 (yes it is weird)
int size = 3; //default page size is 10

if (request.getParameter("page") != null && !request.getParameter("page").isEmpty()) {
page = Integer.parseInt(request.getParameter("page")) - 1;
}

if (request.getParameter("size") != null && !request.getParameter("size").isEmpty()) {
size = Integer.parseInt(request.getParameter("size"));
}
model.addAttribute("events", eventRepository.findAll(PageRequest.of(page, size, Sort.by(Sort.Direction.DESC,"date"))));

List<Event> listHighlights = eventService.listHighlights();
model.addAttribute("destacados", listHighlights);

model.addAttribute("titulo", "Events List No order");
model.addAttribute("slider", eventSlider);
model.addAttribute("titulo", "List No order");
model.addAttribute("list", eventList);


return "index";
}
}


Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,19 @@ public class Event implements Serializable {
private String description;
private String image;
private Integer max_people =25;
private String Date;
private Date date;
private boolean featured;

@ManyToMany(fetch = FetchType.LAZY,
cascade = {
CascadeType.PERSIST, CascadeType.MERGE
})

@JoinTable(name = "events_user",
joinColumns = {@JoinColumn(name = "event_id")},
inverseJoinColumns = {@JoinColumn(name = "user_id")})

private Set<User> users =new HashSet<>();

public Integer getMaxPeople() {
return max_people;
Expand Down Expand Up @@ -59,12 +71,35 @@ public void setImage(String image) {
}


public String getDate() {
return Date;
public Date getDate() {
return date;
}

public void setDate(Date date) {
date = date;
}

public boolean isFeatured() {
return featured;
}
public Set<User> getUsers() {
return users;
}

public Integer getMax_people() {
return max_people;
}

public void setMax_people(Integer max_people) {
this.max_people = max_people;
}

public void setUsers(Set<User> users) {
this.users = users;
}

public void setDate(String date) {
Date = date;
public void setFeatured(boolean featured) {
this.featured = featured;
}


Expand All @@ -76,8 +111,9 @@ public java.lang.String toString() {
", description='" + description + '\'' +
", image='" + image + '\'' +
", maxPeople=" + max_people +
", Date=" + Date +
'}';
", date=" + date +
", featured="+
'}';
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.example.demo.domain.entities.Event;
import com.example.demo.repositories.EventRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;

import java.util.List;
Expand All @@ -12,9 +13,14 @@ public class EventServiceImpl implements IEventService {
private EventRepository eventRepository;
@Override
public List<Event> eventList() {
return (List<Event>) eventRepository.findAll();
return (List<Event>) eventRepository.findAll(Sort.by(Sort.Direction.DESC, "date"));
}

public List<Event> listHighlights(){
return (List<Event>) eventRepository.findByFeaturedIsTrue();
}


@Override
public void save(Event event) {
eventRepository.save(event);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,11 @@

public interface IEventService {
public List<Event> eventList();
public List<Event> listHighlights();
public void save(Event event);
public Event findById(Long id);
public Event delete(Long id);

//List<Users> listaUsers();

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface EventRepository extends CrudRepository<Event, Long> {
public interface EventRepository extends JpaRepository<Event, Long> {
public List<Event> findByFeaturedIsTrue();

}
2 changes: 1 addition & 1 deletion backend/demo/src/main/resources/application.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3307/tech_meets_data
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/tech_meets_data
spring.datasource.username=root
spring.datasource.password=
spring.datasource.driver-class-name =com.mysql.cj.jdbc.Driver
Expand Down
8 changes: 7 additions & 1 deletion backend/demo/src/main/resources/static/css/style.css
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
.carousel-inner .carousel-item {
transition: transform 1s ease;
}

main{
background: rgb(155,104,180);
background: -moz-linear-gradient(51deg, rgba(155,104,180,1) 0%, rgba(121,82,179,1) 35%, rgba(236,25,177,1) 100%);
background: -webkit-linear-gradient(51deg, rgba(155,104,180,1) 0%, rgba(121,82,179,1) 35%, rgba(236,25,177,1) 100%);
background: linear-gradient(51deg, rgba(155,104,180,1) 0%, rgba(121,82,179,1) 35%, rgba(236,25,177,1) 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#9b68b4",endColorstr="#ec19b1",GradientType=1);
}
.h1-carousel {
width: 100%;
text-align: center;
Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,12 @@ <h2 th:text ="${titulo}"></h2>
</div>
</div>

<button class="btn btn-primary" type="submit">Crear Evento</button>
<div class="mb-3 row">
<label class=col-md-2 for="featured">Featured:</label>
<input type="checkbox" th:field="*{featured}" class="mb-3 mb-3-sm col-md-6" id="featured" placeholder="Featured">
<small class="form-text text-danger" th:if="${#fields.hasErrors('featured')}" th:errors="*{featured}"></small>
</div>


<button class="btn btn-primary" type="submit">Crear Evento</button>
</div>
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ <h3 th:text="${ev.Date}"></h3>
<h5 class="card-title" th:text="${ev.title}"></h5>
<p class="card-text" th:text="${ev.description}"></p>
<p class="card-text" th:text="${ev.maxPeople}"></p>

<p class="card-text" th:text="${ev.feature}"></p>
</div>

</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,41 @@
<p th:text="${#temporals.format(ev.date, 'dd-MMMM-yyyy', new java.util.Locale('es', 'ES'))}">
<p th:text="${#temporals.format(localDateTime, 'dd-MMMM-yyyy', new java.util.Locale('fr', 'FR'))}">
-->
<h3 th:text="${ev.Date}"></h3>
<h3 th:text="${ev.date}"></h3>
<img class="card-img-top" th:src="@{${ev.image}}" th:alt="${ev.title}">
<div class="card-body">
<h5 class="card-title" th:text="${ev.title}"></h5>
<p class="card-text" th:text="${ev.description}"></p>
<p class="card-text" th:text="${ev.maxPeople}"></p>
<div class="card-text" th:text="${ev.featured} ? 'Destacado' : 'NO Destacado'"></div>


</div>


</div>
<!-- events pagination -->
<nav aria-label="Pagination" th:if="${events.totalPages gt 0}">
<ul class="pagination justify-content-center font-weight-bold">
<li class="page-item" th:classappend="${events.number eq 0} ? 'disabled'">
<a class="page-link"
th:href="@{/?page={id}(id=${events.number lt 2 ? 1 : events.number})}"
aria-label="Previous" title="Previous Page" data-toggle="tooltip">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
<li class="page-item" th:classappend="${i eq events.number + 1} ? 'active'"
th:each="i : ${#numbers.sequence( 1, events.totalPages, 1)}">
<a class="page-link" th:href="@{/?page={id}(id=${i})}" th:text="${i}"
th:title="${'Page '+ i}" data-toggle="tooltip"></a>
</li>
<li class="page-item" th:classappend="${events.number + 1 eq events.totalPages} ? 'disabled'">
<a class="page-link"
th:href="@{/?page={id}(id=${events.number + 2})}"
aria-label="Next" title="Next Page" data-toggle="tooltip">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
</ul>
</nav>
</div>
Loading