diff --git a/src/Homepage.test.js b/src/Homepage.test.js
new file mode 100644
index 0000000..2193798
--- /dev/null
+++ b/src/Homepage.test.js
@@ -0,0 +1,25 @@
+import { render, fireEvent ,screen } from '@testing-library/react';
+import Homepage from './components/HomePage/HomePage';
+
+
+describe('Homepage', () => {
+ test('renders Homepage component', () => {
+ const { getByText } = render();
+
+ expect(screen.getByText("Open Source Internships")).toBeInTheDocument();
+ expect(screen.getByText("We are an organization to help you find open source internships")).toBeInTheDocument();
+ expect(screen.getByText("What Open Source is ...")).toBeInTheDocument();
+ expect(screen.getByText("a term that is referred to Open Source Software that is designed to be publicly accessible meaning that any user can see, modify, and distribute the code.")).toBeInTheDocument();
+ expect(screen.getByText("We are here to help you!")).toBeInTheDocument();
+});
+
+ const Button = ({children}) => (
+
+ )
+ test('renders button start', async () => {
+ render()
+ fireEvent.click(screen.getByText(/start/i))
+ });
+ screen.debug();
+
+});
\ No newline at end of file
diff --git a/src/Resources.test.js b/src/Resources.test.js
new file mode 100644
index 0000000..20592ae
--- /dev/null
+++ b/src/Resources.test.js
@@ -0,0 +1,41 @@
+import { render, screen, fireEvent } from '@testing-library/react';
+import React from 'react';
+import { BrowserRouter, Router, Link } from 'react-router-dom';
+import { createMemoryHistory } from 'history';
+import data from './components/data/data.json';
+import Resources from './components/Resources/Resources';
+
+describe('Resources', () => {
+
+ test(" more info Link validation", async () => {
+ //check the more info link 12 times rendered on /resouces page
+ //check when click moreinfo link routes to corresponding page /resources/resource.id
+ //check each page has resource.name by getByText on the screen
+
+ let history = createMemoryHistory({ initialEntries: ["/resources"] });
+
+ render();
+ let moreinfoButtons = screen.getAllByText("More info");
+ for (let resource of data)
+ {
+
+
+ More info
+
+
+ expect(moreinfoButtons).toHaveLength(12)
+
+ fireEvent.click(moreinfoButtons[`${resource.id-1}`]);
+
+ expect(location.pathname).toEqual(`/resources/${resource.id}`);
+
+ await expect(screen.getByText(`${resource.name}`)).toBeInTheDocument();
+
+ }
+
+ });
+ screen.debug();
+});
+
+
+
diff --git a/src/assets/images/sample.png b/src/assets/images/sample.png
new file mode 100644
index 0000000..c647725
Binary files /dev/null and b/src/assets/images/sample.png differ
diff --git a/src/components/Contributions/Contributions.js b/src/components/Contributions/Contributions.js
new file mode 100644
index 0000000..599a1cc
--- /dev/null
+++ b/src/components/Contributions/Contributions.js
@@ -0,0 +1,15 @@
+import React from 'react';
+import SubHeading from '../UI/SubHeading';
+import Paragraph from '../UI/Paragraph';
+import styles from './Contributions.module.css';
+const Contributions = props => {
+ return (
+
+ Contributions
+
+ Lorem Ipsum is simply dummy text of the printing and typesetting industry. Ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
+
+
+ )
+}
+export default Contributions;
\ No newline at end of file
diff --git a/src/components/Contributions/Contributions.module.css b/src/components/Contributions/Contributions.module.css
new file mode 100644
index 0000000..40c165a
--- /dev/null
+++ b/src/components/Contributions/Contributions.module.css
@@ -0,0 +1,7 @@
+
+
+.container{
+ display: grid;
+ justify-items: start;
+
+}
\ No newline at end of file
diff --git a/src/components/Internships/Internships.js b/src/components/Internships/Internships.js
new file mode 100644
index 0000000..f009dda
--- /dev/null
+++ b/src/components/Internships/Internships.js
@@ -0,0 +1,17 @@
+import React from 'react';
+import SubHeading from '../UI/SubHeading';
+import Paragraph from '../UI/Paragraph';
+import styles from './Internships.module.css';
+const Internships = props => {
+ return (
+
+
+ Internships
+
+ Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
+
+
+
+ )
+}
+export default Internships;
\ No newline at end of file
diff --git a/src/components/Internships/Internships.module.css b/src/components/Internships/Internships.module.css
new file mode 100644
index 0000000..a75e787
--- /dev/null
+++ b/src/components/Internships/Internships.module.css
@@ -0,0 +1,6 @@
+
+.container{
+ display: grid;
+ justify-items: start;
+
+}
\ No newline at end of file
diff --git a/src/components/Members/Members.js b/src/components/Members/Members.js
new file mode 100644
index 0000000..94c3c03
--- /dev/null
+++ b/src/components/Members/Members.js
@@ -0,0 +1,17 @@
+import React from 'react';
+import SubHeading from '../UI/SubHeading';
+import Paragraph from '../UI/Paragraph';
+import styles from './Members.module.css';
+const Members = props => {
+ return (
+
+
+ Members
+
+ Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
+
+
+
+ )
+}
+export default Members;
\ No newline at end of file
diff --git a/src/components/Members/Members.module.css b/src/components/Members/Members.module.css
new file mode 100644
index 0000000..b39e212
--- /dev/null
+++ b/src/components/Members/Members.module.css
@@ -0,0 +1,7 @@
+
+
+.container{
+ display: grid;
+ justify-items: start;
+
+}
\ No newline at end of file
diff --git a/src/components/NewAbout/About.js b/src/components/NewAbout/About.js
new file mode 100644
index 0000000..edbea88
--- /dev/null
+++ b/src/components/NewAbout/About.js
@@ -0,0 +1,18 @@
+import React from 'react';
+import Heading from '../UI/Heading';
+import Paragraph from '../UI/Paragraph';
+
+import styles from './About.module.css';
+const About = props => {
+ return (
+
+
+ We are an Organization to help you find Open Source Internships
+
+ Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
+
+
+
+ )
+}
+export default About;
\ No newline at end of file
diff --git a/src/components/NewAbout/About.module.css b/src/components/NewAbout/About.module.css
new file mode 100644
index 0000000..5fe0706
--- /dev/null
+++ b/src/components/NewAbout/About.module.css
@@ -0,0 +1,5 @@
+.container{
+ display: grid;
+ justify-items: start;
+
+}
\ No newline at end of file
diff --git a/src/components/NewHomepage/Homepage.js b/src/components/NewHomepage/Homepage.js
new file mode 100644
index 0000000..92dd311
--- /dev/null
+++ b/src/components/NewHomepage/Homepage.js
@@ -0,0 +1,54 @@
+import React from 'react';
+import Button from '../UI/Button';
+import styles from './Homepage.module.css';
+import sampleImg from '../../assets/images/sample.png';
+
+import Contributions from '../Contributions/Contributions';
+import Members from '../Members/Members';
+import Internships from '../Internships/Internships';
+import About from '../NewAbout/About'
+const Homepage = props => {
+ return (
+