diff --git a/backend/demo/demo.iml b/backend/demo/demo.iml index 53e78d7..bec4cc0 100644 --- a/backend/demo/demo.iml +++ b/backend/demo/demo.iml @@ -15,6 +15,7 @@ + @@ -61,12 +62,9 @@ - - - @@ -75,10 +73,6 @@ - - - - @@ -128,5 +122,18 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/demo/pom.xml b/backend/demo/pom.xml index 304d67d..1cd64b5 100644 --- a/backend/demo/pom.xml +++ b/backend/demo/pom.xml @@ -18,10 +18,10 @@ - - org.springframework.boot - spring-boot-starter-data-jpa - + + org.springframework.boot + spring-boot-starter-data-jpa + org.springframework.boot @@ -47,6 +47,33 @@ spring-boot-starter-test test + + org.thymeleaf.extras + thymeleaf-extras-springsecurity5 + + + org.thymeleaf + thymeleaf-spring5 + + + + org.springframework.boot + spring-boot-devtools + runtime + true + + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.security + spring-security-test + test + + diff --git a/backend/demo/src/main/java/com/example/demo/controllers/ViewController.java b/backend/demo/src/main/java/com/example/demo/controllers/ViewController.java index befea86..cde4c74 100644 --- a/backend/demo/src/main/java/com/example/demo/controllers/ViewController.java +++ b/backend/demo/src/main/java/com/example/demo/controllers/ViewController.java @@ -2,11 +2,15 @@ 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 @@ -14,15 +18,35 @@ public class ViewController { @Autowired private IEventService eventService; + @Autowired + private EventRepository eventRepository; @GetMapping({"/","/home", "/index"}) - public String eventSlider(Model model){ - List eventSlider = eventService.eventList(); + public String eventSlider(HttpServletRequest request, Model model){ + List eventSlider = eventService.listHighlights(); List 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 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"; } } + + diff --git a/backend/demo/src/main/java/com/example/demo/domain/entities/Event.java b/backend/demo/src/main/java/com/example/demo/domain/entities/Event.java index 439143d..7b35872 100644 --- a/backend/demo/src/main/java/com/example/demo/domain/entities/Event.java +++ b/backend/demo/src/main/java/com/example/demo/domain/entities/Event.java @@ -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 users =new HashSet<>(); public Integer getMaxPeople() { return max_people; @@ -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 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 users) { + this.users = users; } - public void setDate(String date) { - Date = date; + public void setFeatured(boolean featured) { + this.featured = featured; } @@ -76,8 +111,9 @@ public java.lang.String toString() { ", description='" + description + '\'' + ", image='" + image + '\'' + ", maxPeople=" + max_people + - ", Date=" + Date + - '}'; + ", date=" + date + + ", featured="+ + '}'; } diff --git a/backend/demo/src/main/java/com/example/demo/domain/service/EventServiceImpl.java b/backend/demo/src/main/java/com/example/demo/domain/service/EventServiceImpl.java index e2ee6c2..5657d72 100644 --- a/backend/demo/src/main/java/com/example/demo/domain/service/EventServiceImpl.java +++ b/backend/demo/src/main/java/com/example/demo/domain/service/EventServiceImpl.java @@ -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; @@ -12,9 +13,14 @@ public class EventServiceImpl implements IEventService { private EventRepository eventRepository; @Override public List eventList() { - return (List) eventRepository.findAll(); + return (List) eventRepository.findAll(Sort.by(Sort.Direction.DESC, "date")); } + public List listHighlights(){ + return (List) eventRepository.findByFeaturedIsTrue(); + } + + @Override public void save(Event event) { eventRepository.save(event); diff --git a/backend/demo/src/main/java/com/example/demo/domain/service/IEventService.java b/backend/demo/src/main/java/com/example/demo/domain/service/IEventService.java index ffe7c6e..2558f60 100644 --- a/backend/demo/src/main/java/com/example/demo/domain/service/IEventService.java +++ b/backend/demo/src/main/java/com/example/demo/domain/service/IEventService.java @@ -6,7 +6,11 @@ public interface IEventService { public List eventList(); + public List listHighlights(); public void save(Event event); public Event findById(Long id); public Event delete(Long id); + + //List listaUsers(); + } diff --git a/backend/demo/src/main/java/com/example/demo/repositories/EventRepository.java b/backend/demo/src/main/java/com/example/demo/repositories/EventRepository.java index a335129..23a8e92 100644 --- a/backend/demo/src/main/java/com/example/demo/repositories/EventRepository.java +++ b/backend/demo/src/main/java/com/example/demo/repositories/EventRepository.java @@ -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 { +public interface EventRepository extends JpaRepository { + public List findByFeaturedIsTrue(); + } diff --git a/backend/demo/src/main/resources/application.properties b/backend/demo/src/main/resources/application.properties index bc00326..af2858f 100644 --- a/backend/demo/src/main/resources/application.properties +++ b/backend/demo/src/main/resources/application.properties @@ -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 diff --git a/backend/demo/src/main/resources/static/css/style.css b/backend/demo/src/main/resources/static/css/style.css index bf02fda..2090fc3 100644 --- a/backend/demo/src/main/resources/static/css/style.css +++ b/backend/demo/src/main/resources/static/css/style.css @@ -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; diff --git a/backend/demo/src/main/resources/static/images/favicon.ico b/backend/demo/src/main/resources/static/images/favicon.ico new file mode 100644 index 0000000..531f065 Binary files /dev/null and b/backend/demo/src/main/resources/static/images/favicon.ico differ diff --git a/backend/demo/src/main/resources/templates/components/eventForm.html b/backend/demo/src/main/resources/templates/components/eventForm.html index 113c491..fffece0 100644 --- a/backend/demo/src/main/resources/templates/components/eventForm.html +++ b/backend/demo/src/main/resources/templates/components/eventForm.html @@ -35,5 +35,12 @@

- +
+ + + +
+ + + \ No newline at end of file diff --git a/backend/demo/src/main/resources/templates/components/eventList.html b/backend/demo/src/main/resources/templates/components/eventList.html index 025162b..b6204e2 100644 --- a/backend/demo/src/main/resources/templates/components/eventList.html +++ b/backend/demo/src/main/resources/templates/components/eventList.html @@ -21,7 +21,7 @@

- +

diff --git a/backend/demo/src/main/resources/templates/components/eventListIndex.html b/backend/demo/src/main/resources/templates/components/eventListIndex.html index 1775b9b..ea9098d 100644 --- a/backend/demo/src/main/resources/templates/components/eventListIndex.html +++ b/backend/demo/src/main/resources/templates/components/eventListIndex.html @@ -5,14 +5,41 @@

--> -

+

+
+
+ + + diff --git a/backend/demo/src/main/resources/templates/components/footer.html b/backend/demo/src/main/resources/templates/components/footer.html index 6e8ae75..6af9057 100644 --- a/backend/demo/src/main/resources/templates/components/footer.html +++ b/backend/demo/src/main/resources/templates/components/footer.html @@ -6,7 +6,7 @@ >
- Get connected with us on social networks: + Contacta con nosotros en nuestras redes sociales:
@@ -27,7 +27,7 @@ - + @@ -59,16 +59,16 @@
Products

- Angular + HTML5

- React + Bootstrap

- Vue + Java

- Laravel + JavaScript

@@ -119,7 +119,7 @@
© 2022 Copyright: TechEvents
- + diff --git a/backend/demo/src/main/resources/templates/error/400.html b/backend/demo/src/main/resources/templates/error/400.html index 174d1d9..e03e765 100644 --- a/backend/demo/src/main/resources/templates/error/400.html +++ b/backend/demo/src/main/resources/templates/error/400.html @@ -2,7 +2,7 @@ - Error400 + Error 400 diff --git a/backend/demo/src/main/resources/templates/error/404.html b/backend/demo/src/main/resources/templates/error/404.html index 566549b..e8e327f 100644 --- a/backend/demo/src/main/resources/templates/error/404.html +++ b/backend/demo/src/main/resources/templates/error/404.html @@ -2,7 +2,7 @@ - Title + Error 404 diff --git a/backend/demo/src/main/resources/templates/index.html b/backend/demo/src/main/resources/templates/index.html index a4dec9d..4d80fdf 100644 --- a/backend/demo/src/main/resources/templates/index.html +++ b/backend/demo/src/main/resources/templates/index.html @@ -5,11 +5,11 @@
- +
- +
diff --git a/backend/demo/src/main/resources/templates/template/template.html b/backend/demo/src/main/resources/templates/template/template.html index 20e3e08..0948a50 100644 --- a/backend/demo/src/main/resources/templates/template/template.html +++ b/backend/demo/src/main/resources/templates/template/template.html @@ -5,9 +5,9 @@ xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"> - Template + Tech Events - +
-