@@ -5,107 +5,123 @@ const ProjectInfo = () => {
55 const { singleProjectData } = useContext ( SingleProjectContext ) ;
66
77 return (
8- < div className = "block sm:flex gap-0 sm:gap-10 mt-14" >
9- < div className = "w-full sm:w-1/3 text-left" >
10- { /* Single project client details */ }
11- < div className = "mb-7" >
12- < p className = "font-general-regular text-2xl font-semibold text-secondary-dark dark:text-secondary-light mb-2" >
13- { singleProjectData . ProjectInfo . ClientHeading }
14- </ p >
15- < ul className = "leading-loose" >
16- { singleProjectData . ProjectInfo . CompanyInfo . map (
17- ( info ) => {
18- return (
19- < li
20- className = "font-general-regular text-ternary-dark dark:text-ternary-light"
21- key = { info . id }
22- >
23- < span > { info . title } : </ span >
24- < a
25- href = "https://stoman.me"
26- className = {
27- info . title === 'Website' ||
28- info . title === 'Phone'
29- ? 'hover:underline hover:text-indigo-500 dark:hover:text-indigo-400 cursor-pointer duration-300'
30- : ''
31- }
32- aria-label = "Project Website and Phone"
33- >
34- { info . details }
35- </ a >
36- </ li >
37- ) ;
38- }
39- ) }
40- </ ul >
41- </ div >
8+
9+ < div className = "mt-14" >
10+ { /* Page Wrapper */ }
11+ < div className = "bg-white dark:bg-gray-900 transition-colors duration-300" >
12+ { /* Header Section */ }
13+ < div className = "text-center mb-10" >
14+ < h1 className = "text-4xl font-bold text-secondary-dark dark:text-secondary-light" >
15+ { singleProjectData . projectName }
16+ </ h1 >
17+ < p className = "text-lg text-secondary-dark dark:text-secondary-light mt-4" >
18+ { singleProjectData . description }
19+ </ p >
20+ </ div >
4221
43- { /* Single project objectives */ }
44- < div className = "mb-7" >
45- < p className = "font-general-regular text-2xl font-semibold text-ternary-dark dark:text-ternary-light mb-2" >
46- { singleProjectData . ProjectInfo . ObjectivesHeading }
47- </ p >
48- < p className = "font-general-regular text-primary-dark dark:text-ternary-light" >
49- { singleProjectData . ProjectInfo . ObjectivesDetails }
50- </ p >
51- </ div >
22+ { /* Features Section */ }
23+ < div className = "mb-10" >
24+ < h2 className = "text-2xl font-semibold text-secondary-dark dark:text-secondary-light mb-5" >
25+ Key Features
26+ </ h2 >
27+ < ul className = "list-disc list-inside text-secondary-dark dark:text-secondary-light space-y-2" >
28+ { singleProjectData . features . map ( ( feature , index ) => (
29+ < li key = { index } > { feature } </ li >
30+ ) ) }
31+ </ ul >
32+ </ div >
5233
53- { /* Single project technologies */ }
54- < div className = "mb-7" >
55- < p className = "font-general-regular text-2xl font-semibold text-ternary-dark dark:text-ternary-light mb-2" >
56- { singleProjectData . ProjectInfo . Technologies [ 0 ] . title }
57- </ p >
58- < p className = "font-general-regular text-primary-dark dark:text-ternary-light" >
59- { singleProjectData . ProjectInfo . Technologies [ 0 ] . techs . join (
60- ', '
61- ) }
62- </ p >
34+ { /* Technologies Used Section */ }
35+ < div className = "mb-10" >
36+ < h2 className = "text-2xl font-semibold text-secondary-dark dark:text-secondary-light mb-5" >
37+ Technologies Used
38+ </ h2 >
39+ < div className = "grid grid-cols-1 sm:grid-cols-2 gap-6" >
40+ < div >
41+ < h3 className = "text-lg font-medium text-secondary-dark dark:text-secondary-light mb-3" >
42+ Backend
43+ </ h3 >
44+ < ul className = "list-disc list-inside text-secondary-dark dark:text-secondary-light" >
45+ { singleProjectData . technologies . backend . map ( ( tech , index ) => (
46+ < li key = { index } > { tech } </ li >
47+ ) ) }
48+ </ ul >
6349 </ div >
64-
65- { /* Single project social sharing */ }
6650 < div >
67- < p className = "font-general-regular text-2xl font-semibold text-ternary-dark dark:text-ternary-light mb-2" >
68- { singleProjectData . ProjectInfo . SocialSharingHeading }
69- </ p >
70- < div className = "flex items-center gap-3 mt-5" >
71- { singleProjectData . ProjectInfo . SocialSharing . map (
72- ( social ) => {
73- return (
74- < a
75- key = { social . id }
76- href = { social . url }
77- target = "__blank"
78- aria-label = "Share Project"
79- className = "bg-ternary-light dark:bg-ternary-dark text-gray-400 hover:text-primary-dark dark:hover:text-primary-light p-2 rounded-lg shadow-sm duration-500"
80- >
81- < span className = "text-lg lg:text-2xl" >
82- { social . icon }
83- </ span >
84- </ a >
85- ) ;
86- }
87- ) }
88- </ div >
51+ < h3 className = "text-lg font-medium text-secondary-dark dark:text-secondary-light mb-3" >
52+ Frontend
53+ </ h3 >
54+ < ul className = "list-disc list-inside text-secondary-dark dark:text-secondary-light" >
55+ { singleProjectData . technologies . frontend . map ( ( tech , index ) => (
56+ < li key = { index } > { tech } </ li >
57+ ) ) }
58+ </ ul >
8959 </ div >
9060 </ div >
61+ </ div >
9162
92- { /* Single project right section */ }
93- < div className = "w-full sm:w-2/3 text-left mt-10 sm:mt-0" >
94- < p className = "font-general-regular text-primary-dark dark:text-primary-light text-2xl font-bold mb-7" >
95- { singleProjectData . ProjectInfo . ProjectDetailsHeading }
96- </ p >
97- { singleProjectData . ProjectInfo . ProjectDetails . map ( ( details ) => {
98- return (
99- < p
100- key = { details . id }
101- className = "font-general-regular mb-5 text-lg text-ternary-dark dark:text-ternary-light"
102- >
103- { details . details }
104- </ p >
105- ) ;
106- } ) }
63+ { /* Key Entities Section */ }
64+ { singleProjectData . keyEntities && singleProjectData . keyEntities . length > 0 ?
65+ < div className = "mb-10" >
66+ < h2 className = "text-2xl font-semibold text-secondary-dark dark:text-secondary-light mb-5" >
67+ Key Entities
68+ </ h2 >
69+ < div className = "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6" >
70+ { singleProjectData . keyEntities . map ( ( entity , index ) => (
71+ < div key = { index } className = "p-4 border rounded-lg shadow-sm border-gray-300 dark:border-gray-700" >
72+ < h3 className = "text-lg font-medium text-secondary-dark dark:text-secondary-light mb-3" >
73+ { entity . name }
74+ </ h3 >
75+ < ul className = "list-disc list-inside text-secondary-dark dark:text-secondary-light" >
76+ { entity . fields . map ( ( field , idx ) => (
77+ < li key = { idx } > { field } </ li >
78+ ) ) }
79+ </ ul >
80+ </ div >
81+ ) ) }
10782 </ div >
83+ </ div > : ""
84+ }
85+ { /* Deployment Section */ }
86+ < div className = "mb-10" >
87+ < h2 className = "text-2xl font-semibold text-secondary-dark dark:text-secondary-light mb-5" >
88+ Deployment
89+ </ h2 >
90+ < p className = "text-lg text-secondary-dark dark:text-secondary-light" >
91+ Platform: < strong > { singleProjectData . deployment . platform } </ strong >
92+ </ p >
93+ < ol className = "list-decimal list-inside text-secondary-dark dark:text-secondary-light mt-3" >
94+ { singleProjectData . deployment . steps . map ( ( step , index ) => (
95+ < li key = { index } > { step } </ li >
96+ ) ) }
97+ </ ol >
98+ </ div >
99+
100+ { /* Target Audience Section */ }
101+ < div className = "mb-10" >
102+ < h2 className = "text-2xl font-semibold text-secondary-dark dark:text-secondary-light mb-5" >
103+ Target Audience
104+ </ h2 >
105+ < p className = "text-lg text-secondary-dark dark:text-secondary-light" >
106+ { singleProjectData . targetAudience }
107+ </ p >
108108 </ div >
109+
110+ { /* Future Plans Section */ }
111+ < div >
112+ < h2 className = "text-2xl font-semibold text-secondary-dark dark:text-secondary-light mb-5" >
113+ Future Plans
114+ </ h2 >
115+ < ul className = "list-disc list-inside text-lg text-secondary-dark dark:text-secondary-light space-y-2" >
116+ { singleProjectData . futurePlans . map ( ( plan , index ) => (
117+ < li key = { index } > { plan } </ li >
118+ ) ) }
119+ </ ul >
120+ </ div >
121+ </ div >
122+ </ div >
123+
124+
109125 ) ;
110126} ;
111127
0 commit comments