diff --git a/src/Components/TabPanels/PublicUserPageTabs/TabColecoes.js b/src/Components/TabPanels/PublicUserPageTabs/TabColecoes.js
index 4b46dc0700385baa2b787e847b8a671ed3f1f262..9b987347a51274465b78e7db062a99bd6d9a2273 100644
--- a/src/Components/TabPanels/PublicUserPageTabs/TabColecoes.js
+++ b/src/Components/TabPanels/PublicUserPageTabs/TabColecoes.js
@@ -21,7 +21,7 @@ import { fetchAllRequest, getRequest } from '../../HelperFunctions/getAxiosConfi
 import PanelTemplateColecao from '../PanelComponents/TemplateColecao.js'
 import LoadingSpinner from '../../LoadingSpinner.js'
 
-export default function TabColecoes(props) {
+export default function TabColecoes({id, username}) {
     const [loading, handleLoading] = useState(true)
 
     const [errorInUserColl, setErrorInUserColl] = useState(false)
@@ -52,7 +52,7 @@ export default function TabColecoes(props) {
   
     const getInfo = () => {
       const urls = [
-        `/users/${props.id}/collections?offset=0&limit=4`,
+        `/users/${id}/collections?offset=0&limit=4`,
       ]
       fetchAllRequest(urls, handleSuccess, handleError)
     }
@@ -66,7 +66,7 @@ export default function TabColecoes(props) {
       const limit = limite;
       setLoadingMoreUserColl(true);
       setCurrLimitUserColl(currLimitUserColl + limit)
-      const url = `/users/${props.id}/collections?offset=${currLimitUserColl}&limit=${limit}`;
+      const url = `/users/${id}/collections?offset=${currLimitUserColl}&limit=${limit}`;
       getRequest(url,
         (data) => {
           if (data.errors) {
@@ -98,14 +98,14 @@ export default function TabColecoes(props) {
             {
                 loading ?
                 (
-                    <LoadingSpinner text={'CARREGANDO COLEÇÕES'} />
+                    <LoadingSpinner text={`Carregando coleções de ${username}`} />
                 )
                 :
                 (
                     <PanelTemplateColecao
                         title={"Coleções Públicas"}
                         length={userCollections.length}
-                        noContentText={props.username + " não possui nenhuma coleção."}
+                        noContentText={username + " não possui nenhuma coleção."}
                         sliceArr={userCollections}
                         showMore={showMoreUserCollections}
                         loadingMore={loadingMoreUserColl}
diff --git a/src/Components/TabPanels/PublicUserPageTabs/TabInicio.js b/src/Components/TabPanels/PublicUserPageTabs/TabInicio.js
index c3be595d77195988bb83f7c43106d4cd6a2f43eb..7965d58e5111ad748a22cdf2672c25f05bc3f3ce 100644
--- a/src/Components/TabPanels/PublicUserPageTabs/TabInicio.js
+++ b/src/Components/TabPanels/PublicUserPageTabs/TabInicio.js
@@ -19,7 +19,6 @@ along with Plataforma Integrada MEC.  If not, see <http://www.gnu.org/licenses/>
 import React from 'react'
 import styled from 'styled-components'
 import UserDescription from './UserDescription.js'
-import NoContentImage from '../../../img/img-16.png'
 import Template from '../PanelComponents/TemplateRecurso'
 import PanelTemplateColecao from '../PanelComponents/TemplateColecao.js'
 
@@ -71,7 +70,7 @@ export default function TabInicio({ id, user, learningObjs, collections }) {
             }
             <Template
                 length={learningObjs.length}
-                titleText={learningObjs.length === 1 ? `Recurso de ${user.name}` : `Recursos de ${user.name}`}
+                titleText={learningObjs.length === 1 ? `Último Recurso de ${user.name}` : `Últimos recursos de ${user.name}`}
                 noContentText={`${user.name} não publicou nenhum recursos ainda`}
                 slice={learningObjs}
                 showMore={() => { }} // there is no function here, because we don't want to display more resources in this tab
@@ -80,7 +79,7 @@ export default function TabInicio({ id, user, learningObjs, collections }) {
                 error={false}
             />
             <PanelTemplateColecao
-                title={`Coleçoes de ${user.name}`}
+                title={`Últimas coleçoes de ${user.name}`}
                 length={collections.length}
                 noContentText={`${user.name} não publicou nenhuma coleção ainda`}
                 sliceArr={collections}
diff --git a/src/Components/TabPanels/PublicUserPageTabs/TabRecursos.js b/src/Components/TabPanels/PublicUserPageTabs/TabRecursos.js
index bbce193bcde870391dda55ee9a67c79aacb768b4..b8f38e36b55e62c26f5df389ba6b80bbdba6a301 100644
--- a/src/Components/TabPanels/PublicUserPageTabs/TabRecursos.js
+++ b/src/Components/TabPanels/PublicUserPageTabs/TabRecursos.js
@@ -17,94 +17,92 @@ You should have received a copy of the GNU Affero General Public License
 along with Plataforma Integrada MEC.  If not, see <http://www.gnu.org/licenses/>.*/
 
 import React, { useState, useEffect } from 'react'
-import { HeaderGrid, ContainerStyled, Carregados } from '../StyledComponents.js'
-import Grid from '@material-ui/core/Grid';
-import ResourceCardFunction from '../../ResourceCardFunction.js'
-import { ButtonMostrarMaisRecurso } from '../PanelComponents/ButtonsArea'
+import LoadingSpinner from '../../LoadingSpinner.js'
+import Template from '../PanelComponents/TemplateRecurso.js'
 import { getRequest } from '../../HelperFunctions/getAxiosConfig'
-import { StyledGrid } from '../StyledComponents'
- 
-export default function TabRecursos(props) {
-    const [arr, setArr] = useState([])
-    const [objsSlice, setSlice] = useState([])
-    const handleSlice = (newArr) => { setSlice(newArr) }
 
-    useEffect(() => {
-        setArr(props.learningObjs)
-        setSlice(props.learningObjs.slice(0, 4))
-    }, [])
+export default function TabPanelAtividades({id, username}) {
+    const [loading, handleLoading] = useState(true)
 
-    function handleSuccess(data) {
-        setArr(data)
-        setSlice(data)
-    }
-    const showMore = (quantity) => {
-        var sliceLength = objsSlice.length
-        var newLength = sliceLength + quantity
+    const [errorInLearnObj, setErrorInLearnObj] = useState(false)
+    const [loadingMoreLearnObj, setLoadingMoreLearnObj] = useState(false)
+    const [currLimitLearnObj, setCurrLimitLearnObj] = useState(4);
+    const [endOfLearnObj, setEndofLearndObj] = useState(0);
+    const [learningObjects, setLearningObjects] = useState([]);
 
-        if (newLength > 12) {
-            const url = `/users/${props.id}/learning_objects?limit=${newLength}$offset=4`
-            getRequest(url, handleSuccess, (error) => { console.log(error) })
+    function handleSuccess(data, headers) {
+        setErrorInLearnObj(data.errors ? true : false)
+        setLearningObjects(data)
+        if (headers.has('X-Total-Count')) {
+            setEndofLearndObj(headers.get('X-Total-Count'));
         }
-        else {
-            handleSlice(arr.slice(0, sliceLength + quantity))
-        }
-
+        handleLoading(false)
     }
 
-    return (
-        <ContainerStyled style={{ flexDirection: "column" }}>
+    function handleError(error) {
+        handleLoading(false)
+        setErrorInLearnObj(true)
+    }
 
-            <HeaderGrid container>
-                <Grid item xs={12}>
-                    <h3>Recursos Publicados <b style={{ fontWeight: "500" }}>({props.count})</b></h3>
-                </Grid>
-            </HeaderGrid>
+    useEffect(() => {
+        const url = `/users/${id}/learning_objects?offset=0&limit=4`;
+        handleLoading(true);
+        getRequest(url, handleSuccess, handleError);
+    }, [])
 
-            <StyledGrid container spacing={1} style={{ paddingLeft: "30px", paddingRight: "15px" }}>
-                {
-                    objsSlice.map((card) =>
-                        <Grid item xs={12} sm={6} md={'auto'} lg={3} key={card.id}>
-                            <ResourceCardFunction
-                                avatar={card.publisher.avatar}
-                                id={card.id}
-                                thumbnail={card.thumbnail}
-                                type={card.object_type ? card.object_type : "Outros"}
-                                title={card.name}
-                                published={card.state === "published" ? true : false}
-                                likeCount={card.likes_count}
-                                liked={card.liked}
-                                rating={card.review_average}
-                                author={card.publisher.name}
-                                tags={card.tags}
-                                href={"/recurso/" + card.id}
-                                downloadableLink={card.default_attachment_location}
-                            />
-                        </Grid>
-                    )
+    const showMoreLearnObj = (limite) => {
+        setLoadingMoreLearnObj(true);
+        const limit = limite;
+        setCurrLimitLearnObj(currLimitLearnObj + limit)
+        const url = `/users/${id}/learning_objects?offset=${currLimitLearnObj}&limit=${limit}`;
+        getRequest(url,
+            (data) => {
+                if (data.errors) {
+                    setLoadingMoreLearnObj(false);
+                    setErrorInLearnObj(true)
                 }
-            </StyledGrid>
-
-            <Carregados>
-                <p style={{ margin: "0 0 10px", fontSize: "14px" }}>
-                    Carregados {objsSlice.length} de {arr.length}
-                </p>
-
-                {
-                    props.count > 5 &&
-                    <React.Fragment>
-                        <ButtonMostrarMaisRecurso onClick={() => { showMore(4) }}>
-                            <span style={{ color: "#fff", fontSize: "14px", fontWeight: "500" }}>MOSTRAR MAIS 4</span>
-                        </ButtonMostrarMaisRecurso>
-
-                        <ButtonMostrarMaisRecurso onClick={() => { showMore(20) }}>
-                            <span style={{ color: "#fff", fontSize: "14px", fontWeight: "500" }}>MOSTRAR MAIS 20</span>
-                        </ButtonMostrarMaisRecurso>
-                    </React.Fragment>
+                else if (data.length >= 1) {
+                    let currData = [...learningObjects];
+                    currData = [...currData.concat(data)];
+                    setLoadingMoreLearnObj(false);
+                    setLearningObjects(currData);
                 }
+                else {
+                    setLoadingMoreLearnObj(false);
+                }
+            },
+            (error) => {
+                setLoadingMoreLearnObj(false);
+                setErrorInLearnObj(true)
+            }
+        )
+    }
 
-            </Carregados>
-
-        </ContainerStyled>
+    return (
+        <>
+            {
+                loading ?
+                    (
+                        <LoadingSpinner text={`Carregando os recursos de ${username}`} />
+                    )
+                    :
+                    (
+                        [
+                            <React.Fragment>
+                                <Template
+                                    length={learningObjects.length}
+                                    titleText={learningObjects.length === 1 ? `Recurso publicado de ${username}` : `Recursos publicados ${username}`}
+                                    noContentText={`${username} ainda não publicou nenhum Recurso!`}
+                                    slice={learningObjects}
+                                    showMore={showMoreLearnObj}
+                                    loadingMore={loadingMoreLearnObj}
+                                    end={endOfLearnObj}
+                                    error={errorInLearnObj}
+                                />
+                            </React.Fragment>
+                        ]
+                    )
+            }
+        </>
     )
 }
diff --git a/src/Components/TabPanels/PublicUserPageTabs/TabRede.js b/src/Components/TabPanels/PublicUserPageTabs/TabRede.js
index 6b8a8a8ee73eb0ede45b2b3ed40785697169cbac..81334d46c6edc88b10c8df88fa0df5366edec587 100644
--- a/src/Components/TabPanels/PublicUserPageTabs/TabRede.js
+++ b/src/Components/TabPanels/PublicUserPageTabs/TabRede.js
@@ -21,7 +21,7 @@ import PanelTemplateRede from '../PanelComponents/TemplateRede.js'
 import { fetchAllRequest, getRequest } from '../../HelperFunctions/getAxiosConfig'
 import LoadingSpinner from '../../LoadingSpinner.js'
 
-export default function TabRede (props) {
+export default function TabRede ({id, username}) {
     const [loading, handleLoading] = useState(true)
 
     const [errorInFollowing, setErrorInFollowing] = useState(false)
@@ -41,7 +41,7 @@ export default function TabRede (props) {
         setLoadingFollowing(true);
         const limit = limite;
         setCurrFollowingLimit(currFollowingLimit + limit)
-        const url = `/users/${props.id}/following/User?offset=${currFollowingLimit}&limit=${limit}`;
+        const url = `/users/${id}/following/User?offset=${currFollowingLimit}&limit=${limit}`;
         getRequest(url,
           (data) => {
             if (data.errors) {
@@ -72,7 +72,7 @@ export default function TabRede (props) {
         setLoadingMoreFollowers(true);
         const limit = limite;
         setFollowersLimit(currFollowerLimit + limit)
-        const url = `/users/${props.id}/followers?offset=${currFollowerLimit}&limit=${limit}`;
+        const url = `/users/${id}/followers?offset=${currFollowerLimit}&limit=${limit}`;
         getRequest(url,
           (data) => {
             if (data.errors) {
@@ -125,7 +125,7 @@ export default function TabRede (props) {
     useEffect( () => {
         handleLoading(true)
 
-        const urls = [`/users/${props.id}/followers`, `/users/${props.id}/following/User`]
+        const urls = [`/users/${id}/followers`, `/users/${id}/following/User`]
 
         fetchAllRequest(urls, handleSuccess, handleErrors)
     }, [])
@@ -136,7 +136,7 @@ export default function TabRede (props) {
                 loading ?
                 (
                     [
-                    <LoadingSpinner text={'CARREGANDO...'} />
+                    <LoadingSpinner text={`Carregando dados de ${username}`} />
                     ]
                 )
                 :
@@ -144,7 +144,7 @@ export default function TabRede (props) {
                     [
                     <React.Fragment>
                         <PanelTemplateRede
-                            title={"Seguidores"}
+                            title={`Seguidores de ${username}`}
                             length={followersList.length}
                             sliceArr={followersList}
                             showMore={showMoreFollowers}
@@ -152,11 +152,11 @@ export default function TabRede (props) {
                             end={endOfFollowers}
                             loadingMore={loadingMoreFollowers}
                             error={errorInFollowers}
-                            noContentText={props.username + ' não possui nenhum seguidor'}
+                            noContentText={username + ' não possui nenhum seguidor'}
                         />
             
                         <PanelTemplateRede
-                            title={"Seguindo"}
+                            title={`${username} está seguindo`}
                             length={followingList.length}
                             sliceArr={followingList}
                             showMore={showMoreFollowing}
@@ -164,7 +164,7 @@ export default function TabRede (props) {
                             end={endOfFollowing}
                             loadingMore={loadingMoreFollowing}
                             error={errorInFollowing}
-                            noContentText={props.username + ' não segue nenhum usuário'}
+                            noContentText={username + ' não segue nenhum usuário'}
                         />
                     </React.Fragment>
                     ]
diff --git a/src/Components/TabPanels/UserPageTabs/PanelColecoes.js b/src/Components/TabPanels/UserPageTabs/PanelColecoes.js
index 4e6d490f5871ebdef8ab667556b8b1ca980ebe3d..3abc14f58d9dae31f8a949f890890dcfa0f85c25 100644
--- a/src/Components/TabPanels/UserPageTabs/PanelColecoes.js
+++ b/src/Components/TabPanels/UserPageTabs/PanelColecoes.js
@@ -23,7 +23,6 @@ import Grid from '@material-ui/core/Grid';
 import LoadingSpinner from '../../LoadingSpinner.js'
 import PanelTemplateColecao from '../PanelComponents/TemplateColecao.js'
 import PaginaVaziaColecao from '../../../img/Pagina_vazia_colecao.png'
-import NoContent from '../PanelComponents/NoContent.js'
 import { WhiteContainer, StyledGrid } from '../StyledComponents.js'
 import CreateNewFolderIcon from '@material-ui/icons/CreateNewFolder';
 import Title from '../PanelComponents/PanelTitle.js'
diff --git a/src/Pages/PublicUserPage.js b/src/Pages/PublicUserPage.js
index 2aa9e4f5b33c969ddabd6671fd2a0904c7813bae..fa2818c2d994f455d83a25a2337f9db8cfeea654 100644
--- a/src/Pages/PublicUserPage.js
+++ b/src/Pages/PublicUserPage.js
@@ -37,9 +37,10 @@ import { HeaderContainer, UserProfileContainer, CoverContainer, UserProfileInfoD
 import { fetchAllRequest } from '../Components/HelperFunctions/getAxiosConfig'
 import Typography from '@material-ui/core/Typography';
 import CircularProgress from '@material-ui/core/CircularProgress';
+import LoadingSpinner from '../Components/LoadingSpinner';
 
 function RenderFollowContainer(props) {
-  const { state } = useContext(Store) 
+  const { state } = useContext(Store)
   const [followed, setFollowed] = useState(props.followed)
   const toggleFollowed = () => { setFollowed(!followed) }
 
@@ -155,11 +156,13 @@ export default function PublicUserPage(props) {
     setId(id)
     const urls = [`/users/${id}`, `/users/${id}/learning_objects`, `/users/${id}/collections`, `/users/${id}/following/User`]
     setLoading(true);
-    fetchAllRequest(urls, handleSuccess, (error) => { console.log(error) })
+    fetchAllRequest(urls, handleSuccess, (error) => { console.log(error); setLoading(false) })
   }, [state.currentUser.id, props.match.params.userId])
   /*---------------------------------------------------------*/
 
-  return (
+  return loading ?
+    <LoadingSpinner text="Carregando dados do usuário..."/>
+    :
     <React.Fragment>
       <link href="https://fonts.googleapis.com/css?family=Roboto:100,400,500&display=swap" rel="stylesheet" />
       <BackgroundDiv>
@@ -247,7 +250,7 @@ export default function PublicUserPage(props) {
               {tabValue === 0 &&
                 <TabInicio id={id} user={userData} learningObjs={learningObjArr} collections={collectionsArr} />}
               {tabValue === 1 &&
-                <TabRecursos count={userData.learning_objects_count} learningObjs={learningObjArr} id={id} />}
+                <TabRecursos id={id} username={userData.name} />}
               {tabValue === 2 &&
                 <TabColecoes id={id} username={userData.name} />}
               {tabValue === 3 &&
@@ -257,7 +260,6 @@ export default function PublicUserPage(props) {
         </Grid>
       </BackgroundDiv>
     </React.Fragment>
-  )
 }