diff --git a/README.md b/README.md index 4b1c5d4..651d21f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ # Hutopia +## To Do Link : +https://docs.google.com/document/d/1xY9KtOGBx80ICbwUJWReO4ZEOIvw_D4quMcRzZ-nMWo/edit?usp=sharing + + Hutopia frontEnd. Using vue3 and vuetify3. ## Recommended IDE Setup diff --git a/public/images/hutopymedia/banners/tutorialbanner.png b/public/images/hutopymedia/banners/tutorialbanner.png new file mode 100644 index 0000000..361723f Binary files /dev/null and b/public/images/hutopymedia/banners/tutorialbanner.png differ diff --git a/src/App.vue b/src/App.vue index 92e6f23..84ae9ea 100644 --- a/src/App.vue +++ b/src/App.vue @@ -36,7 +36,7 @@ import {eventBus} from '@/eventBus.js'; import {useUserStore} from "@/stores/user.js"; import {useClient} from "@/plugins/api.js"; -const hideSideBar = ref(false); +const hideSideBar = ref(true); const isUserLoaded = ref(false); const showPopup = ref(false); const popup = ref(null); diff --git a/src/router/index.js b/src/router/index.js index 6147cb1..2ff1d06 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,5 +1,5 @@ -import {createRouter, createWebHistory} from 'vue-router' -import ARPS from '@/views/manualusers/ARPS.vue' +import { createRouter, createWebHistory } from 'vue-router' +import { useUserStore } from "@/stores/user.js"; import GuillaumeAime from '@/views/manualusers/GuillaumeAime.vue' import About from '@/views/documentation/About.vue' import ContentPolicy from '@/views/documentation/ContentPolicy.vue' @@ -13,26 +13,43 @@ import PaymentCompleted from '../views/PayementCompleted.vue' import SignupView from '../views/SignupView.vue' import Join from '../views/main/Join.vue' import Home from '../views/main/Home.vue' -import Browse from '../views/main/Browse.vue' import Wallet from '../views/main/Wallet.vue' import Profile from '../views/main/Profile.vue' import ChloeBeaugrand from '../views/manualusers/ChloeProfile.vue' import Leffet from '../views/manualusers/LeffetProfile.vue' import MathieuCaron from '../views/manualusers/MathieuCaron.vue' -import Creator from "@/views/main/Creator.vue" -import Feed from '../views/main/Feed.vue'; +import CreatorList from '../views/creators/CreatorList.vue' +import CreatorPage from "@/views/creators/CreatorPage.vue"; +import ContentPage from "@/views/contents/ContentPage.vue"; +import PostContent from "@/views/contents/PostContent.vue"; const routes = [ { path: '/', component: Home, - meta: {hideSideBar: true} + meta: { hideSideBar: true } }, { path: '/browse', - component: Browse + component: CreatorList }, - + { + path: '/content/:contentId', + component: ContentPage + }, + { + path: '/@:creator', + component: CreatorPage + }, + { + path: '/creators/@:creator', + component: Profile + }, + { + path: '/content/post', + component: PostContent, + }, + { path: '/@leffet', component: Leffet @@ -49,62 +66,53 @@ const routes = [ path: '/@mathieucaron', component: MathieuCaron }, - { - path: '/@arps', - component: ARPS - }, - - { - path: '/@:creator', - component: Creator - }, { path: '/helpandcontact', component: HelpAndContact, - meta: {hideSideBar: true} + meta: { hideSideBar: true } }, { path: '/termsandconditions', name: 'termsandconditions', component: TermsAndConditions, - meta: {hideSideBar: true} + meta: { hideSideBar: true } }, { path: '/contentpolicy', name: 'contentpolicy', component: ContentPolicy, - meta: {hideSideBar: true} + meta: { hideSideBar: true } }, { path: '/faq', name: 'FAQ', component: FAQ, - meta: {hideSideBar: true} + meta: { hideSideBar: true } }, { path: '/guideforcreators', name: 'guideforcreators', component: CreatorGuide, - meta: {hideSideBar: true} + meta: { hideSideBar: true } }, { path: '/about', name: 'about', component: About, - meta: {hideSideBar: true} + meta: { hideSideBar: true } }, { path: '/pricing', name: 'pricing', component: Pricing, - meta: {hideSideBar: true} + meta: { hideSideBar: true } }, { path: '/join', name: 'join', component: Join, - meta: {hideSideBar: true} + meta: { hideSideBar: true } }, { @@ -115,7 +123,8 @@ const routes = [ { path: '/profile', name: 'profile', - component: Profile + component: Profile, + meta: { requiresAuth: true } }, { path: '/signup', @@ -130,16 +139,9 @@ const routes = [ { path: '/wallet', name: 'wallet', - component: Wallet - }, - { - path: '/feed', - name: 'feed', - component: Feed - }, - - - + component: Wallet, + meta: { requiresAuth: true } + } ] const router = createRouter({ @@ -147,4 +149,20 @@ const router = createRouter({ routes }) -export default router +// Navigation gards +router.beforeEach((to, from, next) => { + const authStore = useUserStore(); + + + if (to.matched.some(record => record.meta.requiresAuth)) { + if (!authStore.user.value || !Object.keys(authStore.user.value).length) { + next('/'); + } else { + next(); + } + } else { + next(); + } +}) + +export default router; diff --git a/src/views/LoginView.vue b/src/views/LoginView.vue index 90c3697..62c973c 100644 --- a/src/views/LoginView.vue +++ b/src/views/LoginView.vue @@ -69,7 +69,7 @@ - + diff --git a/src/views/contents/ContentCard.vue b/src/views/contents/ContentCard.vue new file mode 100644 index 0000000..eb4d9a1 --- /dev/null +++ b/src/views/contents/ContentCard.vue @@ -0,0 +1,45 @@ + + + \ No newline at end of file diff --git a/src/views/contents/ContentList.vue b/src/views/contents/ContentList.vue new file mode 100644 index 0000000..e868ce9 --- /dev/null +++ b/src/views/contents/ContentList.vue @@ -0,0 +1,41 @@ + + + \ No newline at end of file diff --git a/src/views/contents/ContentPage.vue b/src/views/contents/ContentPage.vue new file mode 100644 index 0000000..5c7e6db --- /dev/null +++ b/src/views/contents/ContentPage.vue @@ -0,0 +1,74 @@ + + + + + + diff --git a/src/views/contents/PostContent.vue b/src/views/contents/PostContent.vue new file mode 100644 index 0000000..24248be --- /dev/null +++ b/src/views/contents/PostContent.vue @@ -0,0 +1,106 @@ + + + \ No newline at end of file diff --git a/src/views/contents/PostContentMenu.vue b/src/views/contents/PostContentMenu.vue new file mode 100644 index 0000000..689851f --- /dev/null +++ b/src/views/contents/PostContentMenu.vue @@ -0,0 +1,148 @@ + + + + + \ No newline at end of file diff --git a/src/views/contents/contents.json b/src/views/contents/contents.json new file mode 100644 index 0000000..a5e8983 --- /dev/null +++ b/src/views/contents/contents.json @@ -0,0 +1,40 @@ +[ + { + "id": "00000002-0000-0000-0000-000000000001", + "url": "https://www.youtube.com/embed/neKWqjE0eSs?si=Bo7xbYaw9-56w3lU", + "description": "Bonjour, Nous sommes fiers de vous présenter la version 0.10 d'Hutopy. Nous sommes au début d'une aventure visant à transformer la sphère des médias sociaux. Notre objectif est d'apporter un souffle de fraîcheur en favorisant des interactions plus constructives entre les individus. Dans cette première version, seuls nos utilisateurs testeurs ont accès à la plateforme comme créateur. Dans un futur proche, avec le déploiement de la version 0.2, nous contacterons les personnes qui se sont inscrites via l'onglet d'inscription et ont rempli quelques questions. Si vous souhaitez soutenir le développement de la plateforme, deux options s'offrent à vous. La première consiste à nous apporter un soutien financier, tandis que la seconde est de nous contacter pour faire partie de l'équipe de développement. Nous recherchons actuellement un programmeur supplémentaire pour faire progresser certaines fonctionnalités. Merci de visiter Hutopy.", + "created_by": { + "id": "00000001-0000-0000-0000-000000000001", + "alias": "@marchy" + }, + "created_at": "", + "thumb_up_count": 0, + "thumb_down_count": 0 + }, + { + "id": "00000002-0000-0000-0000-000000000002", + "url": "/images/usersmedia/HutopyProfile/pictures/version.png", + "title": "Déploiement de la version 0.10 d'Hutopy", + "description": "Bonjour, Nous sommes fiers de vous présenter la version 0.10 d'Hutopy. Nous sommes au début d'une aventure visant à transformer la sphère des médias sociaux. Notre objectif est d'apporter un souffle de fraîcheur en favorisant des interactions plus constructives entre les individus. Dans cette première version, seuls nos utilisateurs testeurs ont accès à la plateforme comme créateur. Dans un futur proche, avec le déploiement de la version 0.2, nous contacterons les personnes qui se sont inscrites via l'onglet d'inscription et ont rempli quelques questions. Si vous souhaitez soutenir le développement de la plateforme, deux options s'offrent à vous. La première consiste à nous apporter un soutien financier, tandis que la seconde est de nous contacter pour faire partie de l'équipe de développement. Nous recherchons actuellement un programmeur supplémentaire pour faire progresser certaines fonctionnalités. Merci de visiter Hutopy.", + "created_by": { + "id": "00000001-0000-0000-0000-000000000001", + "alias": "@marchy", + "portrait_url": "" + }, + "created_at": "", + "thumb_up_count": 0, + "thumb_down_count": 0 + }, + { + "id": "00000002-0000-0000-0000-000000000003", + "url": "/images/usersmedia/HutopyProfile/pictures/version.png", + "description": "Bonjour, Nous sommes fiers de vous présenter la version 0.10 d'Hutopy. Nous sommes au début d'une aventure visant à transformer la sphère des médias sociaux. Notre objectif est d'apporter un souffle de fraîcheur en favorisant des interactions plus constructives entre les individus. Dans cette première version, seuls nos utilisateurs testeurs ont accès à la plateforme comme créateur. Dans un futur proche, avec le déploiement de la version 0.2, nous contacterons les personnes qui se sont inscrites via l'onglet d'inscription et ont rempli quelques questions. Si vous souhaitez soutenir le développement de la plateforme, deux options s'offrent à vous. La première consiste à nous apporter un soutien financier, tandis que la seconde est de nous contacter pour faire partie de l'équipe de développement. Nous recherchons actuellement un programmeur supplémentaire pour faire progresser certaines fonctionnalités. Merci de visiter Hutopy.", + "created_by": { + "id": "00000001-0000-0000-0000-000000000001", + "alias": "@marchy" + }, + "created_at": "", + "thumb_up_count": 0, + "thumb_down_count": 0 + } +] \ No newline at end of file diff --git a/src/views/manualusers/ARPS.vue b/src/views/creators/CreatorBanner.vue similarity index 58% rename from src/views/manualusers/ARPS.vue rename to src/views/creators/CreatorBanner.vue index 474eece..c82955e 100644 --- a/src/views/manualusers/ARPS.vue +++ b/src/views/creators/CreatorBanner.vue @@ -1,37 +1,20 @@ -