diff --git a/backend/artistsmgmt/api/__pycache__/urls.cpython-310.pyc b/backend/artistsmgmt/api/__pycache__/urls.cpython-310.pyc
index 8708c4d..5e81a26 100644
Binary files a/backend/artistsmgmt/api/__pycache__/urls.cpython-310.pyc and b/backend/artistsmgmt/api/__pycache__/urls.cpython-310.pyc differ
diff --git a/backend/artistsmgmt/api/__pycache__/views.cpython-310.pyc b/backend/artistsmgmt/api/__pycache__/views.cpython-310.pyc
index b8c9fd4..6821c3f 100644
Binary files a/backend/artistsmgmt/api/__pycache__/views.cpython-310.pyc and b/backend/artistsmgmt/api/__pycache__/views.cpython-310.pyc differ
diff --git a/backend/artistsmgmt/api/views.py b/backend/artistsmgmt/api/views.py
index 8019067..73bb9f8 100644
--- a/backend/artistsmgmt/api/views.py
+++ b/backend/artistsmgmt/api/views.py
@@ -67,11 +67,14 @@ class ArtistRetrieveUpdateDestroyView(generics.RetrieveUpdateDestroyAPIView):
queryset = Artist.objects.all()
serializer_class = ArtistSerializer
-class ArtistUpdateView(RetrieveUpdateAPIView):
+class ArtistUpdateView(generics.UpdateAPIView):
queryset = Artist.objects.all()
serializer_class = ArtistSerializer
# permission_classes = [IsAuthenticated] # Adjust permissions as needed
- def get_object(self):
- user = self.request.user
- return Artist.objects.get(user=user)
+ def patch(self, request, *args, **kwargs):
+ instance = self.get_object()
+ serializer = self.get_serializer(instance, data=request.data, partial=True)
+ serializer.is_valid(raise_exception=True)
+ self.perform_update(serializer)
+ return Response(serializer.data)
\ No newline at end of file
diff --git a/frontend/src/components/profile/ArtistProfile.js b/frontend/src/components/profile/ArtistProfile.js
new file mode 100644
index 0000000..707153a
--- /dev/null
+++ b/frontend/src/components/profile/ArtistProfile.js
@@ -0,0 +1,10 @@
+import React from 'react';
+
+const ArtistProfile = () => {
+ return (
+
+
+ );
+};
+
+export default ArtistProfile;
diff --git a/frontend/src/components/profile/ContactForm.js b/frontend/src/components/profile/ContactForm.js
new file mode 100644
index 0000000..8ed7d8f
--- /dev/null
+++ b/frontend/src/components/profile/ContactForm.js
@@ -0,0 +1,36 @@
+import React from 'react';
+
+const ContactForm = () => {
+ const handleSubmit = (e) => {
+ e.preventDefault();
+ // Handle form submission logic
+ };
+
+ return (
+
+
Contact
+ {/*
+ Name
+
+
+
+
+ Email address
+
+
+
+
+ Message
+
+
+
+
+ */}
+
+ );
+};
+
+export default ContactForm;
diff --git a/frontend/src/components/profile/HeroSection.js b/frontend/src/components/profile/HeroSection.js
new file mode 100644
index 0000000..b826cc5
--- /dev/null
+++ b/frontend/src/components/profile/HeroSection.js
@@ -0,0 +1,25 @@
+//Hero.js
+
+import Link from 'next/link';
+
+const Hero = () => {
+ return(
+
+
+
"Discover,Showcase, Connect, Thrive."
+
+
+ Join us on a journey where art knows no bounds,
and limitless imagination with our artists.
+
+
+
+ View Artists
+
+
+
+
+
+ );
+};
+
+export default Hero;
\ No newline at end of file
diff --git a/frontend/src/components/profile/Navbar.js b/frontend/src/components/profile/Navbar.js
new file mode 100644
index 0000000..ae52a35
--- /dev/null
+++ b/frontend/src/components/profile/Navbar.js
@@ -0,0 +1,51 @@
+import React from "react";
+import Link from "next/link";
+
+const Customnavbar = () => {
+ return (
+
+ );
+};
+
+export default Customnavbar;
diff --git a/frontend/src/components/profile/Portfolio.js b/frontend/src/components/profile/Portfolio.js
new file mode 100644
index 0000000..731c1fe
--- /dev/null
+++ b/frontend/src/components/profile/Portfolio.js
@@ -0,0 +1,40 @@
+import React from 'react';
+
+const Portfolio = () => {
+ // Sample data for portfolio items
+ const portfolioItems = [
+ {
+ title: 'Project 1',
+ image: 'path/to/project1-image.jpg',
+ description: 'Description of project 1...',
+ link: 'https://project1-link.com',
+ },
+ // Add more items as needed
+ ];
+
+ return (
+ //
+ //
Portfolio
+ //
+ // {portfolioItems.map((item, index) => (
+ //
+ //
+ //
+ //
+ // {item.title}
+ // {item.description}
+ //
+ //
+ //
+ //
+ // ))}
+ //
+ //
+
+ Portfolio
+ );
+};
+
+export default Portfolio;
diff --git a/frontend/src/pages/_app.js b/frontend/src/pages/_app.js
index fa49705..fdcb22d 100644
--- a/frontend/src/pages/_app.js
+++ b/frontend/src/pages/_app.js
@@ -10,8 +10,9 @@ export default function App({ Component, pageProps, router }) {
const isLoginPage = router.pathname === '/login';
const isSignupPage = router.pathname === '/signup';
const isShowcasePage = router.pathname === '/showcase';
+ const isProfilePage = router.pathname === '/profile';
- const shouldIncludeNavbarAndFooter = !(isLoginPage || isSignupPage || isShowcasePage);
+ const shouldIncludeNavbarAndFooter = !(isLoginPage || isSignupPage || isShowcasePage || isProfilePage);
useEffect(() => {
// Initialize Google Analytics
diff --git a/frontend/src/pages/profile.js b/frontend/src/pages/profile.js
new file mode 100644
index 0000000..4da1a52
--- /dev/null
+++ b/frontend/src/pages/profile.js
@@ -0,0 +1,20 @@
+import React from "react";
+import Navbar from "../components/profile/Navbar";
+import ArtistProfile from "../components/profile/ArtistProfile";
+import Portfolio from "../components/profile/Portfolio";
+import ContactForm from "../components/profile/ContactForm";
+import Hero from "@/components/profile/HeroSection";
+
+const Profile = () => {
+ return (
+
+ );
+};
+
+export default Profile;