Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kindness & Compassion #73

Open
wants to merge 44 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
a75c50b
- added styled components
gittebe Nov 5, 2024
39ac1d4
- added babel
gittebe Nov 5, 2024
021637c
Add structuring and header component
jacquelinekellyhunt Nov 5, 2024
0e0f918
Merge pull request #1 from gittebe/structure
gittebe Nov 5, 2024
df96470
Add welcome and header section
jacquelinekellyhunt Nov 5, 2024
b64bdc8
Welcome component
jacquelinekellyhunt Nov 5, 2024
862a121
- modified the Grid
gittebe Nov 6, 2024
00cec3b
- I defined the h1 h2, h3 and body text in typography and restructure…
gittebe Nov 6, 2024
5787abf
- added back the former Header section into App
gittebe Nov 6, 2024
8822ae1
- added GlobalStyles folder and fonts to the html
gittebe Nov 6, 2024
75cda7d
Merge pull request #3 from gittebe/global-styles
gittebe Nov 6, 2024
3ea7131
- worked on the header parts and the welcome part
gittebe Nov 6, 2024
d026934
Merge pull request #4 from gittebe/gitte
gittebe Nov 6, 2024
635f399
Edit welcome and header
jacquelinekellyhunt Nov 6, 2024
72c0004
Merge pull request #5 from gittebe/Edit-Header
jacquelinekellyhunt Nov 7, 2024
5cec6e6
Add footer components
jacquelinekellyhunt Nov 7, 2024
bae8983
Merge pull request #6 from gittebe/footer
gittebe Nov 7, 2024
e46de35
Merge pull request #6 from gittebe/footer
gittebe Nov 7, 2024
132487f
- added the supportgroup section (only worked on the mobile phone scr…
gittebe Nov 7, 2024
67966bc
Merge pull request #7 from gittebe/participation
gittebe Nov 7, 2024
1a310b1
- added first parts of the carousel
gittebe Nov 7, 2024
1b6e380
- added the carousel parts
gittebe Nov 8, 2024
410e070
Merge pull request #8 from gittebe/carousel
gittebe Nov 8, 2024
343e462
- changed the json supportgroup
gittebe Nov 8, 2024
9aa0ca2
- moved two images into public folder
gittebe Nov 8, 2024
5118ff9
- changed path of images
gittebe Nov 8, 2024
91fddd2
Merge pull request #9 from gittebe/header
gittebe Nov 8, 2024
27f7421
- changes path of img
gittebe Nov 8, 2024
cc84467
Add achievement section
jacquelinekellyhunt Nov 8, 2024
3b68601
- worked on responsiveness
gittebe Nov 10, 2024
6d0bc8b
Merge pull request #11 from gittebe/media
gittebe Nov 10, 2024
d742e96
-changed path of hero img
gittebe Nov 10, 2024
4dd18af
- changed path hero img
gittebe Nov 10, 2024
2c9d345
Add Calendar
jacquelinekellyhunt Nov 10, 2024
79b0974
Merge pull request #10 from gittebe/achievements
jacquelinekellyhunt Nov 10, 2024
0a5ea84
Merge branch 'main' into calendar
jacquelinekellyhunt Nov 10, 2024
c7d50d0
Merge pull request #12 from gittebe/calendar
jacquelinekellyhunt Nov 10, 2024
af4b613
- worked on responsiveness in header and statistics
gittebe Nov 10, 2024
b045064
- changed title
gittebe Nov 10, 2024
b2fb389
Merge pull request #13 from gittebe/responsiveness
gittebe Nov 10, 2024
a800723
- worked on responsiveness
gittebe Nov 14, 2024
df3007f
Merge pull request #14 from gittebe/responsive
gittebe Nov 14, 2024
c9b2e76
- added README
gittebe Nov 22, 2024
7ffd946
- added live view in README
gittebe Nov 22, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 32 additions & 37 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,32 @@
<h1 align="center">
<a href="">
<img src="/src/assets/design-handoff.svg" alt="Project Banner Image">
</a>
</h1>

# Design Handoff Project

Replace this readme with your own information about your project.

Start by briefly describing the assignment in a sentence or two. Keep it short and to the point.

## Getting Started with the Project

### Dependency Installation & Startup Development Server

Once cloned, navigate to the project's root directory and this project uses npm (Node Package Manager) to manage its dependencies.

The command below is a combination of installing dependencies, opening up the project on VS Code and it will run a development server on your terminal.

```bash
npm i && code . && npm run dev
```

### The Problem

Describe how you approached to problem, and what tools and techniques you used to solve it. How did you plan? What technologies did you use? If you had more time, what would be next?

### View it live

Every project should be deployed somewhere. Be sure to include the link to the deployed project so that the viewer can click around and see what it's all about.

## Instructions

<a href="instructions.md">
See instructions of this project
</a>
# Kindness & Compassion - A Social Support Platform
This project is a collaboration between two developer students and one UX design student as part of Technigo Bootcamp. The website serves as a community hub where users can engage in meaningful conversations, find support groups, and stay updated on activities designed to foster kindness and compassion.

# Features & Structure
## Global Styles:
The project uses styled-components for a modular and responsive design, with a focus on accessibility and smooth user experience across devices.
## Hero Section:
A visually engaging hero section promotes the platform’s mission, inviting users to learn more about spreading good deeds for a better world.
## Support Groups:
The platform features a section for users to join or start support groups, both online and offline, for personal connection and growth.
## Carousel Section:
A dynamic carousel displays testimonials and community stories, allowing users to swipe through inspiring content.
## Calendar of Events:
The platform includes a calendar with upcoming activities, offering users easy access to relevant events.
## Achievements Section:
A visually appealing section showcases key metrics, like the number of volunteer groups, events, and activities, illustrating the platform's impact.
## Footer:
A footer with social media links, contact information, and a brief overview of the platform’s mission and vision, further encouraging community engagement.

# Technologies Used
React: For building the user interface and managing application state.

Styled Components: For styling the app with scoped, reusable components.

React Swipeable: To implement swipeable functionality for mobile devices.

React Hooks: For managing state and lifecycle in a functional programming style.

Responsive Design: The app is fully responsive, ensuring a seamless experience across mobile, tablet, and desktop devices.

# View live:
https://project-design-handoff.netlify.app/
5 changes: 5 additions & 0 deletions babel.config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"presets": [
"@babel/preset-env"
]
}
33 changes: 22 additions & 11 deletions index.html
Original file line number Diff line number Diff line change
@@ -1,13 +1,24 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Music Releases - Project - Week 5</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.jsx"></script>
</body>
</html>

<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Kindness and Compassion</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap"
rel="stylesheet">
<link
href="https://fonts.googleapis.com/css2?family=Roboto+Serif:ital,opsz,wght@0,8..144,100..900;1,8..144,100..900&display=swap"
rel="stylesheet">
</head>

<body>
<div id="root"></div>
<script type="module" src="/src/main.jsx"></script>
</body>

</html>
9 changes: 8 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,20 @@
"preview": "vite preview"
},
"dependencies": {
"prop-types": "^15.8.1",
"react": "^18.2.0",
"react-dom": "^18.2.0"
"react-dom": "^18.2.0",
"react-swipeable": "^7.0.2",
"styled-components": "^6.1.13"
},
"devDependencies": {
"@babel/cli": "^7.25.9",
"@babel/core": "^7.26.0",
"@babel/preset-env": "^7.26.0",
"@types/react": "^18.2.15",
"@types/react-dom": "^18.2.7",
"@vitejs/plugin-react": "^4.0.3",
"babel-plugin-styled-components": "^2.1.4",
"eslint": "^8.45.0",
"eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "^4.6.0",
Expand Down
Binary file added public/assets/HeaderSun.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions public/assets/Menu.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions public/assets/Search.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/supportgroup-cancer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/supportgroup-psych.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/supportgroup-stress.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
28 changes: 26 additions & 2 deletions src/App.jsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,27 @@
export const App = () => {
return <div>Find me in src/app.jsx!</div>;
import { Welcome } from './sections/Welcome';
import { HeaderSection } from './sections/HeaderSection';
import { GlobalStyles } from './styles/GlobalStyles';
import { HeaderHeroSection } from './sections/HeaderHeroSection';
import { FooterSection } from './sections/Footer';
import { SupportgroupSection } from './sections/Supportgroup';
import { CarouselSection } from './sections/Carousel';
import { Calendar } from './sections/Calendar';
import { Achievements } from './sections/Achievements';

const App = () => {
return (
<>
<GlobalStyles />
<HeaderSection />
<HeaderHeroSection />
<Welcome />
<SupportgroupSection />
<CarouselSection />
<Calendar />
<Achievements />
<FooterSection />
</>
);
};

export default App;
Binary file added src/assets/Facebook.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/Hero.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/Instagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/calendarcard1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/calendarcard2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 18 additions & 0 deletions src/carousel.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
[
{
"text": "Det kändes så mycket bättre att inse att jag inte var ensam om de tankarna.",
"author": "Sandra, deltagare i bröstcancergruppen"
},
{
"text": "Det var som om jag fick en helt ny syn på livet efter det här.",
"author": "Johan, deltagare i bröstcancergruppen"
},
{
"text": "Jag känner mig stärkt och hoppfull.",
"author": "Anna, deltagare i bröstcancergruppen"
},
{
"text": "Det var en livsförändrande upplevelse.",
"author": "Erik, deltagare i bröstcancergruppen"
}
]
42 changes: 42 additions & 0 deletions src/components/CalendarCard.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import styled from 'styled-components';
import { DateCard } from '../ui/DateCard';
import calendarcard1 from '../assets/calendarcard1.png';
import calendarcard2 from '../assets/calendarcard2.png';
import { CalendarCardTitle, CalendarCardText } from '../ui/Typography';

const CardContainer = styled.div`
position: relative;
display: flex;
flex-direction: column;
width: 90%;
max-width: 400px;
margin: 1rem auto;
background-color: #f3c1e2;
padding: 0;
`;

const Image = styled.img`
width: 100%;
height: auto;
border-radius: 0;
`;

const CardContent = styled.div`
padding: 1rem;
`;

export const CalendarCard = ({ image, date, month, title, location, time }) => {
const selectedImage = image === 'calendarcard1' ? calendarcard1 : calendarcard2;

return (
<CardContainer>
<Image src={selectedImage} alt={title} />
<DateCard date={date} month={month} />
<CardContent>
<CalendarCardTitle>{title}</CalendarCardTitle>
<CalendarCardText>{location}</CalendarCardText>
<CalendarCardText>{time}</CalendarCardText>
</CardContent>
</CardContainer>
);
};
23 changes: 23 additions & 0 deletions src/components/CarouselCard.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import styled from 'styled-components';
import PropTypes from 'prop-types';

const CarouselCardStyles = styled.div`
display: flex;
width: 12.25rem;
height: 22.6rem;
flex-direction: column;
justify-content: flex-start;
background-color: #C1F0EF;
padding: 1rem 1rem 2rem 1rem;
`
export const CarouselCard = ({ children }) => {
return (
<CarouselCardStyles>
{children}
</CarouselCardStyles>
)
}

CarouselCard.propTypes = {
children: PropTypes.node.isRequired,
}
18 changes: 18 additions & 0 deletions src/components/HeaderCard.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import styled from 'styled-components';

export const HeaderCard = styled.div`
grid-column: span 4;
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
padding: 1rem 0;

@media (min-width: 768px) {
grid-column: span 8;
}

@media (min-width: 1200px) {
grid-column: span 12;
}
`;
Empty file.
81 changes: 81 additions & 0 deletions src/components/SupportgroupCard.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
import { useState, useEffect } from 'react';
import styled from 'styled-components';
import { SupportgroupImage } from '../ui/SupportgroupImage';
import { SupportgroupTextContainer } from '../ui/SupportgroupTextContainer';
import { HeaderText } from '../ui/Typography';
import supportgroupData from '../supportgroups.json';

const SupportgroupCardStyle = styled.div`
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 20rem;
height: 16.875rem;
border-radius: var(--Radius-200, 0.5rem);
box-shadow: 1px 4px 4px 0px rgba(0, 0, 0, 0.25);
overflow: hidden;
margin-bottom: 2.5rem;

@media(max-width: 360px){
width: 18rem;
}

&:hover {
background-color: rgba(255, 255, 255, 0.8);
box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25) inset;
border: var(--sds-size-stroke-border) solid #000;
cursor: pointer;
filter: brightness(0.7);
}`

const SupportgroupCardContainerStyle = styled.div`
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
grid-column: span 4;
max-width: 700px;

@media (min-width: 768px){
grid-column: span 8;
}

@media (min-width: 1200px){
grid-column: span 12;
}
`

export const SupportgroupCard = () => {
const [supportgroups, setSupportgroups] = useState([])
useEffect(() => {
setSupportgroups(supportgroupData)
console.log(supportgroupData)
}, []);

const handleCardClick = (supportgroup) => {
console.log(`Card clicked: ${supportgroup.title}`)
};

return (
<>
<SupportgroupCardContainerStyle>
{supportgroups.map((supportgroup, index) => (
< SupportgroupCardStyle
key={index}
onClick={() => handleCardClick(supportgroup)}
>
<SupportgroupImage
supportgroupImage={supportgroup.supportgroupImage}
alt={supportgroup.alt}
/>
<SupportgroupTextContainer>
<HeaderText>{supportgroup.title}</HeaderText>
</SupportgroupTextContainer>
</SupportgroupCardStyle>
))
}
</SupportgroupCardContainerStyle >
</>
)
}
18 changes: 18 additions & 0 deletions src/components/WelcomeCard.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import styled from 'styled-components';

export const WelcomeCard = styled.div`
grid-column: span 4;
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-start;
background-color: #fff;

@media (min-width: 768px) {
grid-column: span 8;
}

@media (min-width: 1200px) {
grid-column: span 12;
}
`
13 changes: 0 additions & 13 deletions src/index.css

This file was deleted.

Loading