diff --git a/frontend/src/pages/EnrollmentRequest/index.js b/frontend/src/pages/EnrollmentRequest/index.js
new file mode 100644
index 00000000..1bf52e1e
--- /dev/null
+++ b/frontend/src/pages/EnrollmentRequest/index.js
@@ -0,0 +1,149 @@
+import React, { useState, useEffect } from 'react';
+import axios from 'axios';
+import { ChakraProvider, useDisclosure } from '@chakra-ui/react';
+import Header from "../../components/Header/index.js";
+import Footer from "../../components/Footer/index.js";
+
+import {
+ Box,
+ Flex,
+ Heading,
+ Table,
+ Thead,
+ Tbody,
+ Tr,
+ Th,
+ Td,
+ Button,
+ AlertDialog,
+ AlertDialogOverlay,
+ AlertDialogContent,
+ AlertDialogHeader,
+ AlertDialogBody,
+ AlertDialogFooter,
+ Container,
+ Alert,
+ AlertIcon,
+ Select
+} from "@chakra-ui/react";
+
+const EnrollmentRequest = () => {
+ const [eletivas, setEletivas] = useState([]);
+ const [eletivasPorTrilha, setEletivasPorTrilha] = useState({});
+ const [descricaoEletiva, setDescricaoEletiva] = useState('');
+ const { isOpen, onOpen, onClose } = useDisclosure();
+ const cancelRef = React.useRef();
+ const [showAlert, setShowAlert] = useState(false);
+
+ useEffect(() => {
+ async function fetchEletivas() {
+ try {
+ const response = await axios.get('http://localhost:3001/eletivas');
+ setEletivas(response.data);
+
+ const eletivasMap = {};
+ response.data.forEach((eletiva) => {
+ eletivasMap[eletiva.id] = eletiva.related_trilhas || [];
+ });
+ setEletivasPorTrilha(eletivasMap);
+ } catch (error) {
+ console.error('Erro ao buscar eletivas:', error);
+ }
+ }
+ fetchEletivas();
+ }, []);
+
+ const getStatus = (eletivaId) => {
+ return eletivaId % 2 === 0 ? 'Homologado' : 'Não homologado';
+ };
+
+ const handleVerDescricaoClick = (descricao) => {
+ setDescricaoEletiva(descricao);
+ onOpen();
+ };
+
+ return (
+
+
+
+
+
+
+ Eletivas Disponíveis
+
+
+
+
+ Disciplina |
+ Status |
+ Eletivas relacionadas |
+
+
+
+ {eletivas.map((eletiva) => (
+
+ {eletiva.name} |
+ {getStatus(eletiva.id)} |
+
+
+ |
+
+ ))}
+
+
+
+
+
+
+ Descrição da Eletiva
+
+
+ {descricaoEletiva}
+
+
+
+
+
+
+
+
+ {showAlert && (
+
+
+
+ Eletivas carregadas com sucesso!
+
+
+ )}
+
+
+
+
+ );
+};
+
+export default EnrollmentRequest;
diff --git a/frontend/src/pages/EnrollmentRequest/styles.js b/frontend/src/pages/EnrollmentRequest/styles.js
new file mode 100644
index 00000000..4ce76ca2
--- /dev/null
+++ b/frontend/src/pages/EnrollmentRequest/styles.js
@@ -0,0 +1,68 @@
+import styled from "styled-components";
+
+export const Container = styled.div`
+ display: flex;
+ align-items: center;
+ //justify-content: center;
+
+ flex-direction: column;
+ gap: 10px;
+ height: 100vh;
+ background-color: 'white';
+`;
+
+export const Content = styled.div`
+ gap: 15px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+ width: 100%;
+ height: 100%;
+ box-shadow: 0 1px 2px #0003;
+ background-color: #f4f4f2;
+ max-width: 650px;
+ max-height: 85%;
+ margin-top: 2%;
+ border-radius: 60px;
+`;
+
+export const Label = styled.label`
+ font-size: 18px;
+ font-weight: 600;
+ color: #676767;
+`;
+
+export const LabelSignup = styled.label`
+ font-size: 16px;
+ color: #676767;
+`;
+
+export const labelError = styled.label`
+ font-size: 14px;
+ color: red;
+`;
+
+export const Strong = styled.strong`
+ cursor: pointer;
+
+ a {
+ text-decoration: none;
+ color: #676767;
+ }
+`;
+export const titulo = styled.div`
+ font-size: 150%;
+ font-weight: 600;
+ color: #243A69;
+ margin-left: 20px;
+ margin-top: 20px;
+ align: center;
+`;
+export const box = styled.div`
+`;
+
+export const texto = styled.label`
+ color: #243A69;
+
+`;
diff --git a/frontend/src/pages/Home/index.js b/frontend/src/pages/Home/index.js
index 9422e4d2..6399eb9b 100644
--- a/frontend/src/pages/Home/index.js
+++ b/frontend/src/pages/Home/index.js
@@ -42,7 +42,7 @@ const Home = () => {
Criar trilha
@@ -61,10 +61,10 @@ const Home = () => {
@@ -75,7 +75,18 @@ const Home = () => {
Importar estudantes
+
+
+
+
+
+
+
diff --git a/frontend/src/pages/Recommendations/index.js b/frontend/src/pages/Recommendations/index.js
index 99ac8ba1..6a24d7b3 100644
--- a/frontend/src/pages/Recommendations/index.js
+++ b/frontend/src/pages/Recommendations/index.js
@@ -95,7 +95,7 @@ const Recommendations = () => {
{linha.name} |
|