diff --git a/src/app/components/About.js b/src/app/components/About.js
index 3f4ca35c60cd790551833a444d50aa1cc8f5e794..4a6ced00a341634a51c490c6c5ca2355d1039fe7 100644
--- a/src/app/components/About.js
+++ b/src/app/components/About.js
@@ -4,6 +4,10 @@ import Title from "./Title";
 import Image from "next/image";
 import SubjectOutlinedIcon from '@mui/icons-material/SubjectOutlined';
 
+/**
+ * 
+ * @returns tela de sobre
+ */
 export default function AboutComponent() {
   const [statistics, setStatistics] = useState({});
 
diff --git a/src/app/components/Cards.js b/src/app/components/Cards.js
index 516a8cbb721bc776c9c736283ac51f61a63be0c3..c3443126b01e034fb4b70aab4df65d5ab3b0308f 100644
--- a/src/app/components/Cards.js
+++ b/src/app/components/Cards.js
@@ -6,19 +6,24 @@ import Avatar from "@mui/material/Avatar";
 import Typography from "@mui/material/Typography";
 import Link from "next/link";
 
-/* 
-props do card:
-id: id do recurso
-title: titulo do recurso
-author: autor do recurso
-avatar: link avatar autor
-image: link imagem recurso
-shadow: sombra caso o card tenha sombra, exemplo: recursos do mec
-updated_at: data da ultima modificaçao do recurso
-*/
+
+/**
+ * Funçao que monta os cards dos recursos
+ * @param {Number} id id do recurso
+ * @param {string} title título do recurso
+ * @param {string} author autor do recurso
+ * @param {string} avatar link avatar autor
+ * @param {string} image link imagem recurso
+ * @param {String} updated_at data da ultima modificação do recurso
+ */
 
 export default function Cards(props) {
 
+  /**
+   * 
+   * @param {String} type tipo de recurso 
+   * @returns caso o recurso não tenha retorna uma thumbnail padrão
+   */
   const getDefaultThumbnail = (type) => {
     let thumbnail_url;
 
@@ -57,7 +62,11 @@ export default function Cards(props) {
     return thumbnail_url;
   };
 
-
+  /**
+   * 
+   * @param {String} updated_time 
+   * @returns função responsável por cálcular o tempo percorrido desde a publicação do recurso na plataforma
+   */
   const timeFunction = (updated_time) => {
     let data = new Date(updated_time)
     let dataAtual = new Date();
@@ -79,7 +88,6 @@ export default function Cards(props) {
   }
 
   return (
-
     <Card
       className={"active:bg-black-hover  active:rounded-3xl transition ease-in-out items-center "}
       sx={{
@@ -100,7 +108,6 @@ export default function Cards(props) {
         sx={{
           width: props?.thumbWidth ?? 400,
           height: props?.thumbHeight ?? 225,
-          boxShadow: props?.shadow ?? "none,"
         }}
         component="img"
         image={
diff --git a/src/app/components/Content.js b/src/app/components/Content.js
index 452f8abe9cf6e21b78a657ccec8be73bd7a66502..baa46b1ec19e0e346544272eb06a577c810e722e 100644
--- a/src/app/components/Content.js
+++ b/src/app/components/Content.js
@@ -18,6 +18,10 @@ function tradutor(name) {
     }
 }
 
+/**
+ * @param {Object} props
+ * @param {string} props.name  informna se é recursos, coleções ou MEC
+ */
 export default function Content({ name }) {
     const [selectFilter, setSelectFilter] = useState("publicationdesc");
     const [titlePage, setTitlePage] = useState("Recentes");
@@ -25,6 +29,8 @@ export default function Content({ name }) {
     const [query, setQuery] = useState("*");
     const [filterSubject, setFilterSubject] = useState("");
 
+    {/* GroupButtonsFilters: Botões para seleção do tipo de filtro usado (selectFilter) */ }
+    //caso MEC não apresenta o GroupButtonsFilters pois não há conteudo suficiente para ser filtrado
     return (
         <Overlay filterSubject={filterSubject} setFilterSubject={setFilterSubject} setQuery={setQuery} setSelectFilter={setSelectFilter} selectFilter={selectFilter} setTitlePage={setTitlePage} setNewSize={setNewSize} newSize={newSize}>
             {name != "MEC" ?
diff --git a/src/app/components/DownloadButton.js b/src/app/components/DownloadButton.js
index 8c46b5ceffc7e0ace7f731ce479b97f9d97e224c..c3681141fc5b036bd2cc4abc85bf751a5ad027f7 100644
--- a/src/app/components/DownloadButton.js
+++ b/src/app/components/DownloadButton.js
@@ -2,6 +2,12 @@ import * as React from 'react';
 import Button from '@mui/material/Button';
 import DownloadIcon from '@mui/icons-material/Download';
 
+/**
+ * Responsável pelo Download dos recursos de uma coleção
+ * @param {Object} props
+ * @param {Number} props.id  id do elemento
+ * @param {Array.<Object>} props.objects  recursos de uma coleção  
+  */
 export default function DownloadButton({ id, objects }) {
 
     const handleDowloadCollection = (e) => {
@@ -29,7 +35,6 @@ export default function DownloadButton({ id, objects }) {
     }
 
     return (
-
         <>
             <Button
                 className=" border-secondary w-32 rounded-xl hover:bg-secondary-hover bg-secondary text-white max-md:my-3 font-bold normal-case flex "
@@ -38,12 +43,6 @@ export default function DownloadButton({ id, objects }) {
                 startIcon={<DownloadIcon className='text-white' />}>
                 Baixar
             </Button>
-
         </>
-
-
     )
-
-
-
 }
\ No newline at end of file
diff --git a/src/app/components/FiltersModal.js b/src/app/components/FiltersModal.js
index 00e17f75574e4699a33c6dba3c29e8b6efdb3f8e..4df1b0b729081da5ebe6a8efabe3d1e19289863d 100644
--- a/src/app/components/FiltersModal.js
+++ b/src/app/components/FiltersModal.js
@@ -6,6 +6,10 @@ import TuneIcon from '@mui/icons-material/Tune';
 import { Divider } from '@mui/material';
 import CloseIcon from '@mui/icons-material/Close';
 
+/**
+ * 
+ * @returns modal de filtros
+ */
 export default function FiltersModal() {
     const [open, setOpen] = useState(false);
     const handleOpen = () => setOpen(true);
diff --git a/src/app/components/GroupButtonsFilters.js b/src/app/components/GroupButtonsFilters.js
index 59789301cf49c0985247bf02ca5d1de60a4bb852..bc87e33389953b6eb4bf4380846cbdc04cb8b6ef 100644
--- a/src/app/components/GroupButtonsFilters.js
+++ b/src/app/components/GroupButtonsFilters.js
@@ -31,7 +31,14 @@ const atalhos = [
 
 
 
-
+/**
+ * 
+ * @param {Object} props
+ * @param {Function} props.setTitlePage
+ * @param {Function} props.setSelectFilter
+ * @param {String} props.selectFilter filtro selecionado (ex:score)
+ * @returns grupo de botões de filtros
+ */
 export default function GroupButtonsFilters({ setTitlePage, setSelectFilter, selectFilter }) {
     return (
         <div className="flex justify-between pb-5 px-4 overflow-x-scroll no-scrollbar">
diff --git a/src/app/components/GroupCardsCollections.js b/src/app/components/GroupCardsCollections.js
index 91e89fb4cf007560621334f7a096280371bc24be..d2bce764f7a5b2e4b555705a3d27db18dbd39ddb 100644
--- a/src/app/components/GroupCardsCollections.js
+++ b/src/app/components/GroupCardsCollections.js
@@ -3,7 +3,12 @@ import { useEffect, useState } from "react";
 import Cards from "./Cards";
 import { Button } from "@mui/material";
 
-export default function GroupCardsCollections({ data, cardsPerRow, boxShadow }) {
+/**
+ * Retorna na tela uma coleção
+ * @param {Array.<Object>} data - recursos da coleção
+ * @param {number} cardsPerRow - quantidade de cards que cabem na linha 
+ */
+export default function GroupCardsCollections({ data, cardsPerRow }) {
     const [expanded, setExpanded] = useState(false);
     const [showButton, setShowButton] = useState(false);
 
@@ -34,7 +39,6 @@ export default function GroupCardsCollections({ data, cardsPerRow, boxShadow })
                                 authorId={item["collectionable"]["publisher"]["id"]}
                                 avatar={item["collectionable"]["publisher"]["avatar"]}
                                 image={item["collectionable"]["thumbnail"]}
-                                shadow={boxShadow}
                                 updated_at={item["collectionable"]["updated_at"]}
 
                             />
@@ -49,6 +53,7 @@ export default function GroupCardsCollections({ data, cardsPerRow, boxShadow })
                 </div>
             </div>
             <>
+            {/*mostra botão de ver mais caso os recursos de uma coleção cabem em mais de uma linha */}
                 {showButton ?
                     (
                         <Button
diff --git a/src/app/components/GroupCardsLearningObjects.js b/src/app/components/GroupCardsLearningObjects.js
deleted file mode 100644
index 0994785b5434c2d75e69b480117c7ccd74faffcb..0000000000000000000000000000000000000000
--- a/src/app/components/GroupCardsLearningObjects.js
+++ /dev/null
@@ -1,73 +0,0 @@
-"use client";
-import { useEffect, useState } from "react";
-import Cards from "./Cards";
-import mecredApi from "@/axiosConfig";
-import { Button, Divider } from "@mui/material";
-
-export default function GroupCardsLearningObjects({ title, cardsPerRow, url }) {
-    const [expanded, setExpanded] = useState(false);
-    const [showButton, setShowButton] = useState(false);
-    const [learningObjects, setLearningObjects] = useState([]);
-
-    useEffect(() => {
-        const handleResize = (length) => {
-            if (length > cardsPerRow) {
-                setShowButton(true);
-            }
-        };
-        const fetchlearningObjects = async (url) => {
-            const { data } = await mecredApi.get(url);
-            setLearningObjects(data);
-            handleResize(data.length);
-        };
-        if (cardsPerRow > 0) {
-            fetchlearningObjects(url);
-        }
-    }, [cardsPerRow, url]);
-
-    const toggleContent = () => {
-        setExpanded(!expanded);
-    };
-
-    return (
-        <div className="flex flex-col">
-            <div className=" mx-1 mt-2 flex flex-col ">
-                <div className=" ml-6 inline-block">
-                    <h1 className="text-xl font-bold mb-4 text-gray-600">
-                        Recursos mais {title}
-                    </h1>
-                </div>
-                <div className={`flex content flex-wrap justify-center ${expanded ? "" : "overflow-y-hidden h-[300px]"}`}>
-                    {learningObjects.map((item, index) => {
-                        return (
-                            <Cards
-                                id={item['id']}
-                                key={index}
-                                title={item["name"]}
-                                author={item["publisher"]["name"]}
-                                authorId={item["publisher"]["id"]}
-                                avatar={item["publisher"]["avatar"]}
-                                image={item["thumbnail"]}
-                                type={item["object_type"]}
-                            />
-                        );
-                    })}
-                </div>
-            </div>
-            <Divider className="mr-8 max-md:mr-0 ">
-                {showButton ?
-                    (
-                        <Button
-                            fullWidth
-                            disableElevation
-                            variant="outlined"
-                            className="mt-2 border-secondary rounded-xl hover:border-secondary-hover text-gray-700 normal-case flex gap-2"
-                            onClick={toggleContent}
-                        >
-                            {expanded ? "Fechar" : "Carregar mais"}
-                        </Button>
-                    ) : null}
-            </Divider>
-        </div>
-    );
-}
diff --git a/src/app/components/Header.js b/src/app/components/Header.js
index 1187d1e06d9f579a1c6c64194406bbb22fa11067..6e2ab06197b9ea3f7c28b03d4d59073684c2f5c2 100644
--- a/src/app/components/Header.js
+++ b/src/app/components/Header.js
@@ -20,6 +20,12 @@ import NotificationsActiveSharpIcon from "@mui/icons-material/NotificationsActiv
 import AccountMenu from "./MenuProfile";
 import SearchComponent from "./SearchComponent";
 
+/**
+ * @param {Object} props
+ * @param {Function} props.setQuery - seta o query
+ * @param {Function} props.handleOpenMenu - abre/fecha sidebar
+ * @returns header
+ */
 export default function Header({ setQuery, handleOpenMenu }) {
   const [mobileMoreAnchorEl, setMobileMoreAnchorEl] = React.useState(null);
   const isMobileMenuOpen = Boolean(mobileMoreAnchorEl);
@@ -38,6 +44,7 @@ export default function Header({ setQuery, handleOpenMenu }) {
     setOpenSearch(!openSearch);
   };
 
+  //componentes da header para celular
   const renderMobileMenu = (
     <Menu
       anchorEl={mobileMoreAnchorEl}
diff --git a/src/app/components/InfiniteScroll.js b/src/app/components/InfiniteScroll.js
index a40499fe081fabe100490841afe25e64ea1cdf5c..2dbf0ec2824d7cd4050fe037ad0dd2b45f28f9ee 100644
--- a/src/app/components/InfiniteScroll.js
+++ b/src/app/components/InfiniteScroll.js
@@ -3,7 +3,18 @@ import InfiniteScrollCards from "./InfiniteScrollCards";
 import mecredApi from "@/axiosConfig";
 import Loading from "./Loading";
 
-export default function InfiniteScroll({ filterSubject, subject, query, type, filter, setNewSize, newSize }) {
+
+/**
+ * @param {Object} props
+ * @param {String} props.filterSubject matérias selecionadas - string de números inteiros, cada um correspondendo a uma máteria
+ * @param {String} props.query query digitanda na barra de busca do site
+ * @param {String} props.type nome em inglês da página (ex:collections)
+ * @param {String} props.filter nome do filtro selecionado (ex:publicationdesc)
+ * @param {Function} props.setNewSize
+ * @param {Boolean} props.newSize boolean que verifica se o tamanho da tela foi alterado
+ * @returns  faz a chamada dos recursos/coleções conforme a tela é scrollada ou os filtros alterados
+ */
+export default function InfiniteScroll({ filterSubject, query, type, filter, setNewSize, newSize }) {
   const [items, setItems] = useState([]);
   const [isLoading, setIsLoading] = useState(false);
   const [page, setPage] = useState(0);
@@ -40,6 +51,7 @@ export default function InfiniteScroll({ filterSubject, subject, query, type, fi
     }
   }, [setItems, setPage, setIsLoading, filter, type, query, filterSubject]);
 
+  //verifica se o usuário chegou no final da página
   const handleScroll = useCallback(() => {
     if (
       window.innerHeight + document.documentElement.scrollTop !==
@@ -51,11 +63,13 @@ export default function InfiniteScroll({ filterSubject, subject, query, type, fi
     fetchData(page);
   }, [fetchData, isLoading, page]);
 
+  //caso o filtro seja alterado, seta o site para o topo da tela
   useEffect(() => {
     fetchData(0).then(() => { window.scrollTo(0, 0) });
     setIsScroll(true);
   }, [type, filter, fetchData]);
 
+  //controle do scroll da página
   useEffect(() => {
     window.addEventListener("scroll", handleScroll);
     return () => window.removeEventListener("scroll", handleScroll);
diff --git a/src/app/components/InfiniteScrollCards.js b/src/app/components/InfiniteScrollCards.js
index fc231f70263a478cfdf5400eac5819b3422f70f4..4b6258ad3bee007cb89b2ad08b050644293f1c25 100644
--- a/src/app/components/InfiniteScrollCards.js
+++ b/src/app/components/InfiniteScrollCards.js
@@ -5,14 +5,29 @@ import Link from "next/link";
 import mecredApi from "@/axiosConfig";
 import DownloadButton from "./DownloadButton";
 
+ /**
+  * 
+  * @param {Object} props
+  * @param {Array.<Object>} props.data dados obtidos apartir do get do InfiniteScroll.js
+  * @param {string} props.type informa se é recursos ou coleções, caso vazia retorna Collection  
+  * @param {Function} props.setNewSize 
+  * @param {boolean} props.newSize verifica se a tela teve o tamanho alterado
+  * @returns renderixa na tela o conteúdo obtido pelo InfiniteScroll.js
+  */
 export default function InfiniteScrollCards({ data, type = "Collection", setNewSize, newSize }) {
     const [cardsPerRow, setCardsPerRow] = useState(0);
     const [mecCollection, setMecCollection] = useState([]);
 
+    /**
+    *pega o tamanho da div de id "contentSize"
+    */
     const getWidth = async () => {
         return document.getElementById('contentSize').scrollWidth;
     };
 
+    /**
+     * pega o tamanho da tela caso esse seja alterado
+    */
     useEffect(() => {
         getWidth().then((res) => {
             setCardsPerRow(Math.floor(res / 300));
@@ -20,6 +35,9 @@ export default function InfiniteScrollCards({ data, type = "Collection", setNewS
         });
     }, [newSize, setNewSize]);
 
+    /**
+     * get das coleções Oficiais do MEC
+    */
     const fetchCollections = async () => {
         try {
             const { data } = await mecredApi
@@ -34,6 +52,9 @@ export default function InfiniteScrollCards({ data, type = "Collection", setNewS
         fetchCollections();
     }, []);
 
+    /**
+     * função que conta o tempo decorrido desde a publicação do recurso
+    */ 
     const timeFunction = (updated_time) => {
         let data = new Date(updated_time)
         let dataAtual = new Date();
diff --git a/src/app/components/Loading.js b/src/app/components/Loading.js
index 5af5e91c21961c027eef54f50e71f048bf63b38f..8941738c0ea6209d140c5ec2a8c4529de18ba25c 100644
--- a/src/app/components/Loading.js
+++ b/src/app/components/Loading.js
@@ -1,3 +1,9 @@
+/**
+ * 
+ * @param {boolean} scroll - verifica se é o Loading de scrollar  
+ * @returns um componente de loading
+ */
+
 export default function Loading({ scroll }) {
     return (
         <>
diff --git a/src/app/components/MenuProfile.js b/src/app/components/MenuProfile.js
index 8ddcc3e203989719b88af2e2e402ef08791be37b..1baa2c98b5e89625e3333b46d6bb78cab84f315f 100644
--- a/src/app/components/MenuProfile.js
+++ b/src/app/components/MenuProfile.js
@@ -16,6 +16,11 @@ import { isLoggedIn } from "../handlers/loginHandler";
 
 const items = [];
 
+
+/**
+ * 
+ * @returns menu do usuário
+ */
 export default function AccountMenu() {
   const [anchorEl, setAnchorEl] = useState(null);
   const [userData, setUserData] = useState({});
diff --git a/src/app/components/Overlay.js b/src/app/components/Overlay.js
index cd626885b9cf9468e0b0105ce093a8675475bd5d..142663e69f43ca54cb0f1c0011c974c450a6084b 100644
--- a/src/app/components/Overlay.js
+++ b/src/app/components/Overlay.js
@@ -7,6 +7,16 @@ import theme from "@/app/theme";
 import { ThemeProvider } from "@emotion/react";
 import Loading from "./Loading";
 
+/**
+ * @param {Object} props
+ * @param {Function} props.setFilterSubject 
+ * @param {Function} props.setQuery  
+ * @param {Function} props.setSelectFilter  
+ * @param {string} props.selectFilter  
+ * @param {Function} props.setTitlePage
+ * @param {Function} props.setNewSize  
+ * @returns componente que engloba header/sidebar/suspense e ThemeProvider
+ */
 export default function Overlay({
   children,
   filterSubject,
diff --git a/src/app/components/SearchComponent.js b/src/app/components/SearchComponent.js
index 4f5793924486e66e8bcbe964fb6550275646a8ee..42387b49fbe84f412b9f9c9f91f8dd32a4f76c75 100644
--- a/src/app/components/SearchComponent.js
+++ b/src/app/components/SearchComponent.js
@@ -43,6 +43,13 @@ const StyledInputBase = styled(InputBase)(({ theme }) => ({
   },
 }));
 
+/**
+ * 
+ * @param {Object} props
+ * @param {Function} props.setQuery
+ * @param {Boolean} props.sizeWindow 
+ * @returns searchComponent na header
+ */
 export default function SearchComponent({ setQuery, sizeWindow }) {
   const pathname = usePathname();
   const [input, setInput] = useState("");
diff --git a/src/app/components/ShareModal.js b/src/app/components/ShareModal.js
index 46d45af0c386b2a1e93f9e58f792b5f75c8c0ac9..3fb1556d00d9c75e96a3f08a0440fe5778fd3e8b 100644
--- a/src/app/components/ShareModal.js
+++ b/src/app/components/ShareModal.js
@@ -3,6 +3,11 @@ import Image from "next/image";
 import ContentCopyIcon from "@mui/icons-material/ContentCopy";
 import { usePathname } from "next/navigation";
 
+/**
+ * @param {Object} props
+ * @param {Boolean} props.open
+ * @param {Function} props.onClose  
+ */
 export default function ShareModal({ open, onClose }) {
   const pathname = usePathname();
   let url = "";
diff --git a/src/app/components/SideBar.js b/src/app/components/SideBar.js
index 645cca15e7455bc9b4557d87d859c8a97a3a4388..18b9a29005fd53f6297482573f41a9395b0937c3 100644
--- a/src/app/components/SideBar.js
+++ b/src/app/components/SideBar.js
@@ -44,6 +44,11 @@ function handleStringSubject(array) {
   return string.substring(0, string.length - 1);
 }
 
+/**
+ * @param {Object} props
+ * @param {Function} props.setFilterSubject
+ * @param {Boolean} props.openMenu 
+ */
 export default function SideBar({ setFilterSubject, openMenu }) {
   const [subjects, setSubjects] = useState([]);
   const [selectedSubject, setSelectedSubject] = useState([]);
diff --git a/src/app/components/Title.js b/src/app/components/Title.js
index f34d4a782180a9bcae18f846f836a8564338b3b8..073322b2460382f7a0f1c1ce80f0fb5676ad88bb 100644
--- a/src/app/components/Title.js
+++ b/src/app/components/Title.js
@@ -12,3 +12,4 @@ export default function Title() {
     </div>
   );
 }
+
diff --git a/src/app/entrar/components/SignupModal.js b/src/app/entrar/components/SignupModal.js
index 0caf1de24120275848220925a9a9b2950d6c3c34..63d0a542d81e4573da4d21f8ff5536409ab01383 100644
--- a/src/app/entrar/components/SignupModal.js
+++ b/src/app/entrar/components/SignupModal.js
@@ -3,9 +3,9 @@ import Box from "@mui/material/Box";
 import Button from "@mui/material/Button";
 import Modal from "@mui/material/Modal";
 import Image from "next/image";
-import { TextField, Divider, Alert } from "@mui/material";
 import { useState } from "react";
 import mecredApi from "@/axiosConfig";
+import { TextField, Divider, Alert } from "@mui/material";
 import { removeFromLocalStorage } from "@/app/handlers/localStorageHandler";
 
 export default function SignupModal({ open, handleClose }) {
diff --git a/src/app/recurso/[id]/components/metrics.js b/src/app/recurso/[id]/components/metrics.js
index 37451ea33c233aa3eb610fa7ca82309529d3463c..f01f8de344f88bc7f7575ae167e91bdba8909db6 100644
--- a/src/app/recurso/[id]/components/metrics.js
+++ b/src/app/recurso/[id]/components/metrics.js
@@ -2,25 +2,25 @@ import StarHalfOutlinedIcon from "@mui/icons-material/StarHalfOutlined";
 
 const genMetric = ({ icon, name, data }) => {
   return (
-  <div key={name} className="p-0 flex items-center">
-    <div className="p-2 text-main-text">
-      {icon}
-    </div>
-    <div className="text-main-text font-bold">
-      {name}:
-    </div>
-    <div className="m-1 text-main-text">
-      {data}
+    <div key={name} className="p-0 flex items-center">
+      <div className="p-2 text-main-text">
+        {icon}
+      </div>
+      <div className="text-main-text font-bold">
+        {name}:
+      </div>
+      <div className="m-1 text-main-text">
+        {data}
+      </div>
     </div>
-  </div>
   );
 }
 
 export default function Specifications({ learningObject }) {
   const metricInfo = [
-    {icon: <StarHalfOutlinedIcon/>, name: "Visualizações", data: learningObject.views_count},
-    {icon: <StarHalfOutlinedIcon/>, name: "Curtidas", data: learningObject.likes_count},
-    {icon: <StarHalfOutlinedIcon/>, name: "Compartilhamentos", data: learningObject.shares_count},
+    { icon: <StarHalfOutlinedIcon />, name: "Visualizações", data: learningObject.views_count },
+    { icon: <StarHalfOutlinedIcon />, name: "Curtidas", data: learningObject.likes_count },
+    { icon: <StarHalfOutlinedIcon />, name: "Compartilhamentos", data: learningObject.shares_count },
   ];
   return (
     <div className="flex flex-col p-1 text-main-text">