- Create developer profiles, portfolio, share and get help from - other devs -
-+ {RenderIcon(icon)} {lead} +
+ > + ); +}; + +export default Header; diff --git a/src/components/NavBar.tsx b/src/components/NavBar.tsx new file mode 100644 index 0000000..a88a8f8 --- /dev/null +++ b/src/components/NavBar.tsx @@ -0,0 +1,29 @@ +import React, {FC} from 'react'; +import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; +import {faCode} from '@fortawesome/free-solid-svg-icons'; + +/** + * Main Navbar serves navigation routes. + */ +const NavBar: FC = () => ( + +); + +export default NavBar; diff --git a/src/constants/routes.ts b/src/constants/routes.ts new file mode 100644 index 0000000..33e8207 --- /dev/null +++ b/src/constants/routes.ts @@ -0,0 +1,15 @@ +/** + * Register all routes here for easy future modification. + * Paths must start with '/' + */ +export const LANDING: string = '/'; +export const SIGN_UP: string = '/signup'; +export const SIGN_IN: string = '/signin'; +export const DEVELOPERS: string = '/developers'; +export const PROFILE: string = '/profile'; +export const EDIT_PROFILE: string = '/edit-profile'; +export const DASHBOARD: string = '/dashboard'; +export const ADD_EXPERIENCE: string = '/add-experience'; +export const ADD_EDUCATION: string = '/add-education'; +export const POST: string = '/post'; +export const POSTS: string = '/posts'; diff --git a/src/models/Dev.ts b/src/models/Dev.ts new file mode 100644 index 0000000..131f025 --- /dev/null +++ b/src/models/Dev.ts @@ -0,0 +1,106 @@ +import Experience from '../types/Experience'; +import Education from '../types/Education'; +import Repo from '../types/Repo'; + +/** Shorter dev interface */ +export interface DevSummary { + id: string; + name: string; + picture: string; + description: string; + location: string; + skills: string[]; +} + +/** Full developer profile information. + * @extends DevSummary to avoid duplication + */ +interface Dev extends DevSummary { + bio: string; + links: Object; + experiences: Experience[]; + educations: Education[]; + repos: Repo[]; +} + +/** + * sample Dev for development and tests + */ +export const dummyDev: Dev = { + id: '0', + name: 'John Doe', + picture: + 'https://www.gravatar.com/avatar/205e460b479e2e5b48aec07710c08d50?s=200', + description: 'Developer at Microsoft', + location: 'Seattle, WA', + skills: ['HTML', 'CSS', 'JavaScript', 'Python'], + links: { + web: '#', + instagram: 'http://insta.com', + facebook: '#', + linkedin: '#', + twitter: '#', + github: '#', + }, + bio: + 'Lorem ipsum, dolor sit amet consectetur adipisicing elit. Blanditiis unde quae vero enim adipisci voluptas magni sapiente reprehenderit error minima.', + experiences: [ + { + company: 'Microsoft', + from: new Date(2011, 10), + to: 'Current', + position: 'Senior Developer', + description: + 'Lorem ipsum dolor sit, amet consectetur adipisicing elit. Voluptas corrupti rem eius, accusantium ipsum vel eveniet magnam voluptatum? Minus, voluptatum!', + }, + { + company: 'Sun Microsystems', + from: new Date(2004, 10), + to: new Date(2010, 11), + position: 'System Admin', + description: + 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Repellendus at rem totam sed qui! Quas.', + }, + ], + educations: [ + { + school: 'University of Washington', + from: new Date(1993, 9), + to: new Date(1999, 6), + degree: 'Master', + field: 'Computer Science', + description: + 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Repellendus at rem totam sed qui! Quas.', + }, + ], + repos: [ + { + name: 'Repo #1', + description: + 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Fugit,deserunt.', + link: '#', + stars: 42, + watchers: 2, + forks: 4, + }, + { + name: 'Repo #2', + description: + 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Fugit,deserunt.', + link: '#', + stars: 21, + watchers: 1, + forks: 2, + }, + { + name: 'Repo #3', + description: + 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Fugit,deserunt.', + link: '#', + stars: 50, + watchers: 32, + forks: 12, + }, + ], +}; +export default Dev; diff --git a/src/models/Post.ts b/src/models/Post.ts new file mode 100644 index 0000000..ffa7d71 --- /dev/null +++ b/src/models/Post.ts @@ -0,0 +1,47 @@ +import Comment from '../types/Comment'; + +/** + * Post send by a dev + */ +interface Post { + id: string; + userID: string; + name: string; + text: string; + picture: string; + likes: string[]; + comments: Comment[]; + // date: Date; +} + +/** + * sample Post for development and tests + */ +export const dummyPost: Post = { + id: '12', + userID: '42', + picture: + 'https://www.gravatar.com/avatar/205e460b479e2e5b48aec07710c08d50?s=200', + name: 'John Doe', + text: + 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Sint possimus corporis sunt necessitatibus! Minus nesciunt soluta suscipit nobis. Amet accusamus distinctio cupiditate blanditiis dolor? Illo perferendis eveniet cum cupiditate aliquam?', + comments: [ + { + picture: + 'https://www.gravatar.com/avatar/205e460b479e2e5b48aec07710c08d50?s=200', + name: 'John Doe', + text: + 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Sintpossimus corporis sunt necessitatibus! Minus nesciunt solutasuscipit nobis. Amet accusamus distinctio cupiditate blanditiis dolor? Illo perferendis eveniet cum cupiditate aliquam?', + }, + { + picture: + 'https://www.gravatar.com/avatar/205e460b479e2e5b48aec07710c08d50?s=200', + name: 'Ruidy Nemo', + text: + 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Sintpossimus corporis sunt necessitatibus! Minus nesciunt solutasuscipit nobis. Amet accusamus distinctio cupiditate blanditiis dolor? Illo perferendis eveniet cum cupiditate aliquam?', + }, + ], + likes: ['0', '42'], +}; + +export default Post; diff --git a/src/pages/AddEducation.tsx b/src/pages/AddEducation.tsx new file mode 100644 index 0000000..0ad839b --- /dev/null +++ b/src/pages/AddEducation.tsx @@ -0,0 +1,65 @@ +import React, {FC} from 'react'; +import FormHeader from '../components/FormHeader'; + +/** + * Form to add an Education step to Profile + */ +const AddEducation: FC = () => ( +| Company | +Title | +Years | ++ |
|---|---|---|---|
| {exp.company} | +{exp.position} | +{getTimePeriod(exp.from, exp.to)} | ++ + | +
| School | +Degree | +Years | ++ |
|---|---|---|---|
| {edu.school} | +{edu.field} | +{getTimePeriod(edu.from, edu.to)} | ++ + | +
+ Create developer profiles, portfolio, share and get help from other + devs +
+{post.text}
+{c.text}
+{dev.description}
+{dev.location}
+{dev.bio}
+ +{getTimePeriod(exp.from, exp.to)}
++ Position: + {exp.position} +
++ Description: + {exp.description} +
+{getTimePeriod(edu.from, edu.to)}
++ Degree: + {edu.degree} +
++ Field: + {edu.field} +
++ Description: + {edu.description} +
+{r.description}
++ Don't have an account? Sign in +
++ Already have an account? Sign in +
+