├── src
├── components
│ ├── pages
│ │ ├── AdminMeetingsDashBoard
│ │ │ ├── ViewAllMeetings
│ │ │ │ ├── MeetingInfo.css
│ │ │ │ ├── MeetingInfo.js
│ │ │ │ ├── ViewAllMeetings.js
│ │ │ │ └── VAMC.js
│ │ │ ├── DynamicDropdown.js
│ │ │ └── CrudModals
│ │ │ │ └── DeleteModal.js
│ │ ├── MenteeMeetingsDashBoard
│ │ │ ├── ViewAllMeetings
│ │ │ │ ├── MeetingInfo.css
│ │ │ │ ├── MeetingInfo.js
│ │ │ │ ├── ViewAllMeetings.js
│ │ │ │ └── VAMC.js
│ │ │ └── DynamicDropdown.js
│ │ ├── MentorMeetingsDashBoard
│ │ │ ├── ViewAllMeetings
│ │ │ │ ├── MeetingInfo.css
│ │ │ │ ├── MeetingInfo.js
│ │ │ │ ├── ViewAllMeetings.js
│ │ │ │ └── VAMC.js
│ │ │ ├── DynamicDropdown.js
│ │ │ └── CrudModals
│ │ │ │ └── DeleteModal.js
│ │ ├── LandingPage
│ │ │ ├── index.js
│ │ │ ├── resources
│ │ │ │ ├── guyatcomputer.jpg
│ │ │ │ ├── pointatscreen.jpg
│ │ │ │ └── mentorhelpingmentee.jpg
│ │ │ ├── LandingPage.js
│ │ │ └── LandingPage.less
│ │ ├── Profile
│ │ │ ├── index.js
│ │ │ ├── Profile.js
│ │ │ └── ProfileContainer.js
│ │ ├── NotFound
│ │ │ ├── index.js
│ │ │ └── NotFoundPage.js
│ │ ├── TicketsDashboard
│ │ │ ├── TicketsDashboard.css
│ │ │ └── TicketsDashboard.js
│ │ ├── SuperAdminForm
│ │ │ ├── index.js
│ │ │ ├── SuperAdminFormContainer.js
│ │ │ └── SuperAdminFormStyle.css
│ │ ├── UserManagement
│ │ │ ├── index.js
│ │ │ └── UserModal.jsx
│ │ ├── ManageResources
│ │ │ ├── index.js
│ │ │ └── ManageResources.js
│ │ ├── ProfileList
│ │ │ ├── index.js
│ │ │ ├── ProfileListContainer.js
│ │ │ └── RenderProfileListPage.js
│ │ ├── MentorMenteeMatching
│ │ │ ├── MentorTable.css
│ │ │ └── MentorTable.js
│ │ ├── Navbar
│ │ │ ├── ud_logo.jpeg
│ │ │ ├── ud_logo2.png
│ │ │ ├── NavbarFeatures
│ │ │ │ ├── MentorPopover.js
│ │ │ │ └── ExampleFeature.js
│ │ │ ├── Navbar.less
│ │ │ └── NavbarItems.js
│ │ ├── MenteesProgress
│ │ │ └── MenteesProgress.js
│ │ ├── Schedule
│ │ │ └── Schedule.js
│ │ ├── RoleApply
│ │ │ ├── Applications
│ │ │ │ ├── Styles
│ │ │ │ │ ├── test.css
│ │ │ │ │ ├── mentorApplication.css
│ │ │ │ │ └── menteeApplication.css
│ │ │ │ ├── README.dm
│ │ │ │ ├── README.md
│ │ │ │ ├── AppSuccess.js
│ │ │ │ ├── AppRejected.js
│ │ │ │ └── AppPending.js
│ │ │ └── Styles
│ │ │ │ └── apply.css
│ │ ├── Availability
│ │ │ └── Availability.js
│ │ ├── Attendance
│ │ │ └── attendance.js
│ │ ├── Analytics
│ │ │ ├── Analytics.css
│ │ │ ├── Analytics.js
│ │ │ └── TechStackGraph.jsx
│ │ ├── Applications
│ │ │ ├── AppTypeMenu.js
│ │ │ ├── ApplicationModal.less
│ │ │ └── ApplicationModal.js
│ │ ├── Memos
│ │ │ ├── Memo.less
│ │ │ ├── MyMemos.js
│ │ │ └── Memos.js
│ │ ├── FooterLanding
│ │ │ ├── FooterCol.js
│ │ │ ├── FooterStyle.js
│ │ │ └── FooterLanding.js
│ │ ├── Reviews
│ │ │ └── MentorReviews.js
│ │ ├── Dashboard
│ │ │ └── Dashboard.js
│ │ ├── AddReviews
│ │ │ ├── MenteeAddReview.js
│ │ │ └── MentorAddReview.js
│ │ ├── PendingApproval
│ │ │ └── PendingApproval.js
│ │ ├── SupportRequests
│ │ │ └── SupportRequests.js
│ │ └── MenteeMentorDashboard
│ │ │ ├── MenteeMentorDashboard.js
│ │ │ ├── MentorModal.jsx
│ │ │ └── MenteeModal.jsx
│ └── common
│ │ ├── constants
│ │ ├── index.js
│ │ ├── techstack.js
│ │ └── states.js
│ │ ├── LoadingComponent.js
│ │ ├── Loading.js
│ │ ├── index.js
│ │ ├── PrivateRoute.js
│ │ ├── styles
│ │ ├── Sidebar.css
│ │ ├── Calendar.css
│ │ ├── Memos.css
│ │ └── Resources.css
│ │ ├── ScheduleMeeting.js
│ │ ├── Size&Devices.js
│ │ ├── FormButton.js
│ │ ├── Button.js
│ │ ├── FormInput.js
│ │ ├── MemosTable
│ │ └── AddReply
│ │ │ ├── Reply.css
│ │ │ ├── showReply.js
│ │ │ └── Reply.js
│ │ ├── DarkModeToggle.js
│ │ ├── Calendar.js
│ │ ├── DialogButton
│ │ ├── ScheduleButton.js
│ │ └── Dialog.js
│ │ ├── Sidebar
│ │ ├── Sidebar.js
│ │ └── SidebarLinks.utils.js
│ │ └── SkeletonLoading.js
├── config
│ └── index.js
├── state
│ ├── actions
│ │ ├── lifecycle
│ │ │ ├── setFetchEnd.js
│ │ │ └── setFetchStart.js
│ │ ├── theme
│ │ │ └── index.js
│ │ ├── auth
│ │ │ ├── setRoleId.js
│ │ │ ├── setProfileId.js
│ │ │ ├── setIsAuthenticated.js
│ │ │ └── authenticateUser.js
│ │ ├── errors
│ │ │ └── setFetchError.js
│ │ ├── userProfile
│ │ │ ├── setUserProfile.js
│ │ │ ├── setCurrentUser.js
│ │ │ ├── setApplicationProfile.js
│ │ │ └── getProfile.js
│ │ ├── applications
│ │ │ ├── setCurrentApplication.js
│ │ │ ├── applicationModal.js
│ │ │ └── handleApplications.js
│ │ ├── userMatches
│ │ │ ├── setUserMatches.js
│ │ │ ├── setSuggestedMatches.js
│ │ │ ├── updateUserMatches.js
│ │ │ ├── getUserMatches.js
│ │ │ └── getSuggestedMatches.js
│ │ ├── allUsers
│ │ │ ├── getAllUsers.js
│ │ │ └── setAllUsers.js
│ │ ├── mentee
│ │ │ └── index.js
│ │ ├── mentor
│ │ │ └── index.js
│ │ └── index.js
│ ├── reducers
│ │ ├── themeReducer.js
│ │ ├── calendarReducer.js
│ │ ├── index.js
│ │ ├── applicationsReducer.js
│ │ └── userReducer.js
│ └── REDUX_README.md
├── setupTests.js
├── utils
│ └── README.md
├── hooks
│ ├── useLocalStorage.js
│ ├── useTheme.js
│ ├── useAxiosWithAuth0.js
│ └── useForms.js
├── __mocks__
│ └── CreateTestStore.js
├── __tests__
│ ├── LoadingComponent.test.js
│ ├── NotFoundPage.test.js
│ ├── README.md
│ └── AdminDashboard.test.js
├── auth
│ ├── ShowPermission.js
│ └── auth0ProviderWithHistory.js
├── styles
│ └── theme-overrides.js
└── api
│ └── index.js
├── .env.sample
├── .github
├── CODEOWNERS
└── workflows
│ └── ci.yml
├── public
├── robots.txt
├── favicon.ico
├── manifest.json
├── index.html
└── local.json
├── CODEOWNERS
├── .prettierrc
├── wireframes
├── DeprecatedWireframes
│ ├── Login.png
│ ├── Signup form.PNG
│ ├── homepageWF.png
│ ├── userroleflow.PNG
│ ├── Mentee upd dashboard.PNG
│ ├── mentor_application_form.png
│ ├── mentee_application_forms.png
│ ├── AdminDashboardpendingapproval.PNG
│ ├── create admin and superadmin dashboard.PNG
│ └── AdminDashboardpendingapprovalmentormenteeavailability.PNG
├── Mentor View Dash with Edit Dash.png
├── LandingPageWireframes
│ ├── Landing-Page.png
│ └── Landing-Page-Mobile.png
├── NewDesignProposition
│ ├── AdminWireframes
│ │ ├── admin_calender.png
│ │ ├── Dashboard-Page-Admin.png
│ │ ├── admin_track_resources.png
│ │ ├── Dashboard-Page-Admin-Modal.png
│ │ ├── admin_pending_applications.png
│ │ ├── admin_track_resources_empty.png
│ │ ├── admin_request_resources_form.png
│ │ └── admin_pending_applications_empty.png
│ ├── MatchingWireframes
│ │ ├── matching-table.jpg
│ │ ├── matching-expanded.jpg
│ │ └── matching-expanded-alt.jpg
│ ├── MenteesWireframes
│ │ ├── mentee_calender.png
│ │ ├── mentees_meetings.png
│ │ ├── mentees_resources.png
│ │ ├── mentees_assignments.png
│ │ ├── mentees_meetings_empty.png
│ │ ├── mentees_resources_empty.png
│ │ └── mentees_assignments_empty.png
│ ├── MentorWireframes
│ │ ├── mentor_calender.png
│ │ ├── mentors_mentees.png
│ │ ├── mentors_mentees_empty.png
│ │ ├── mentors_mentees_dropdown.png
│ │ ├── mentors_schedule_meeting.png
│ │ ├── mentors_upcoming_meetings.png
│ │ ├── mentors_request_resource_form.png
│ │ └── mentors_assigned_resources_empty.png
│ └── RoleSignupWireframes
│ │ ├── Mentee_wireframe.png
│ │ ├── Mentor_wireframe.png
│ │ └── mentor_mentee_application_forms.png
└── README.md
├── jestConfig.js
├── amplify.yml
├── craco.config.js
├── .eslint
├── .gitignore
├── start.js
├── LICENSE
├── pull_request_template.md
├── CODE_OF_CONDUCT.md
└── package.json
/src/components/pages/AdminMeetingsDashBoard/ViewAllMeetings/MeetingInfo.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/components/pages/MenteeMeetingsDashBoard/ViewAllMeetings/MeetingInfo.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/components/pages/MentorMeetingsDashBoard/ViewAllMeetings/MeetingInfo.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/config/index.js:
--------------------------------------------------------------------------------
1 | export const API_URL = process.env.REACT_APP_API_URI;
2 |
--------------------------------------------------------------------------------
/.env.sample:
--------------------------------------------------------------------------------
1 | REACT_APP_AUTH0_DOMAIN=auth0domain
2 | REACT_APP_AUTH0_CLIENT_ID=clientIdInfo
--------------------------------------------------------------------------------
/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | @paulstgermain
2 | @ashtilawat23
3 | @ryan-hamblin
4 | @tinomen
5 | @frankfusco
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/src/components/pages/LandingPage/index.js:
--------------------------------------------------------------------------------
1 | export { default as Landing } from './LandingPage';
2 |
--------------------------------------------------------------------------------
/src/components/pages/Profile/index.js:
--------------------------------------------------------------------------------
1 | export { default as Profile } from './ProfileContainer';
2 |
--------------------------------------------------------------------------------
/src/components/pages/NotFound/index.js:
--------------------------------------------------------------------------------
1 | export { default as NotFoundPage } from './NotFoundPage';
2 |
--------------------------------------------------------------------------------
/src/components/pages/TicketsDashboard/TicketsDashboard.css:
--------------------------------------------------------------------------------
1 | .ant-layout {
2 | width: 100%;
3 | }
4 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/public/favicon.ico
--------------------------------------------------------------------------------
/CODEOWNERS:
--------------------------------------------------------------------------------
1 | @paulstgermain
2 | @BrokenShell
3 | @bummings
4 | @frankfusco
5 | @ryan-hamblin
6 | @ashtilawat23
7 |
--------------------------------------------------------------------------------
/src/components/pages/SuperAdminForm/index.js:
--------------------------------------------------------------------------------
1 | export { default as SuperAdminForm } from './SuperAdminForm';
2 |
--------------------------------------------------------------------------------
/src/components/pages/UserManagement/index.js:
--------------------------------------------------------------------------------
1 | export { default as UserManagement } from './UserManagement';
2 |
--------------------------------------------------------------------------------
/src/components/pages/ManageResources/index.js:
--------------------------------------------------------------------------------
1 | export { default as ResourceManagement } from './ManageResources';
2 |
--------------------------------------------------------------------------------
/src/components/pages/ProfileList/index.js:
--------------------------------------------------------------------------------
1 | export { default as ProfileListPage } from './ProfileListContainer';
2 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "trailingComma": "es5",
3 | "semi": true,
4 | "singleQuote": true,
5 | "arrowParens": "avoid"
6 | }
7 |
--------------------------------------------------------------------------------
/src/components/pages/MentorMenteeMatching/MentorTable.css:
--------------------------------------------------------------------------------
1 | .assignMentorTable label.ant-checkbox-wrapper {
2 | width: unset;
3 | }
4 |
--------------------------------------------------------------------------------
/src/components/pages/Navbar/ud_logo.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/src/components/pages/Navbar/ud_logo.jpeg
--------------------------------------------------------------------------------
/src/components/pages/Navbar/ud_logo2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/src/components/pages/Navbar/ud_logo2.png
--------------------------------------------------------------------------------
/wireframes/DeprecatedWireframes/Login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/DeprecatedWireframes/Login.png
--------------------------------------------------------------------------------
/wireframes/DeprecatedWireframes/Signup form.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/DeprecatedWireframes/Signup form.PNG
--------------------------------------------------------------------------------
/wireframes/DeprecatedWireframes/homepageWF.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/DeprecatedWireframes/homepageWF.png
--------------------------------------------------------------------------------
/wireframes/Mentor View Dash with Edit Dash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/Mentor View Dash with Edit Dash.png
--------------------------------------------------------------------------------
/wireframes/DeprecatedWireframes/userroleflow.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/DeprecatedWireframes/userroleflow.PNG
--------------------------------------------------------------------------------
/wireframes/LandingPageWireframes/Landing-Page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/LandingPageWireframes/Landing-Page.png
--------------------------------------------------------------------------------
/src/components/pages/MenteesProgress/MenteesProgress.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | export function MenteesProgress({ LoadingComponent }) {
4 | return <>>;
5 | }
6 |
--------------------------------------------------------------------------------
/jestConfig.js:
--------------------------------------------------------------------------------
1 | Object.defineProperty(window, 'backingStorePixelRatio', {
2 | value: () => ({
3 | getPropertyValue: prop => {
4 | return '';
5 | },
6 | }),
7 | });
8 |
--------------------------------------------------------------------------------
/src/state/actions/lifecycle/setFetchEnd.js:
--------------------------------------------------------------------------------
1 | export const SET_FETCH_END = 'SET_FETCH_END';
2 |
3 | export const setFetchEnd = () => {
4 | return { type: SET_FETCH_END };
5 | };
6 |
--------------------------------------------------------------------------------
/src/state/actions/theme/index.js:
--------------------------------------------------------------------------------
1 | export const SET_THEME = 'SET_THEME';
2 |
3 | export const setThemeRedux = theme => {
4 | return { type: SET_THEME, payload: theme };
5 | };
6 |
--------------------------------------------------------------------------------
/wireframes/DeprecatedWireframes/Mentee upd dashboard.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/DeprecatedWireframes/Mentee upd dashboard.PNG
--------------------------------------------------------------------------------
/wireframes/LandingPageWireframes/Landing-Page-Mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/LandingPageWireframes/Landing-Page-Mobile.png
--------------------------------------------------------------------------------
/wireframes/DeprecatedWireframes/mentor_application_form.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/DeprecatedWireframes/mentor_application_form.png
--------------------------------------------------------------------------------
/src/components/pages/LandingPage/resources/guyatcomputer.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/src/components/pages/LandingPage/resources/guyatcomputer.jpg
--------------------------------------------------------------------------------
/src/components/pages/LandingPage/resources/pointatscreen.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/src/components/pages/LandingPage/resources/pointatscreen.jpg
--------------------------------------------------------------------------------
/src/state/actions/auth/setRoleId.js:
--------------------------------------------------------------------------------
1 | export const SET_ROLE_ID = 'SET_ROLE_ID';
2 |
3 | export const setRoleId = role_id => {
4 | return { type: SET_ROLE_ID, payload: role_id };
5 | };
6 |
--------------------------------------------------------------------------------
/src/state/actions/lifecycle/setFetchStart.js:
--------------------------------------------------------------------------------
1 | export const SET_FETCH_START = 'SET_FETCH_START';
2 |
3 | export const setFetchStart = () => {
4 | return { type: SET_FETCH_START };
5 | };
6 |
--------------------------------------------------------------------------------
/wireframes/DeprecatedWireframes/mentee_application_forms.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/DeprecatedWireframes/mentee_application_forms.png
--------------------------------------------------------------------------------
/src/components/pages/LandingPage/resources/mentorhelpingmentee.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/src/components/pages/LandingPage/resources/mentorhelpingmentee.jpg
--------------------------------------------------------------------------------
/wireframes/DeprecatedWireframes/AdminDashboardpendingapproval.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/DeprecatedWireframes/AdminDashboardpendingapproval.PNG
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/AdminWireframes/admin_calender.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/AdminWireframes/admin_calender.png
--------------------------------------------------------------------------------
/src/state/actions/errors/setFetchError.js:
--------------------------------------------------------------------------------
1 | export const SET_FETCH_ERROR = 'SET_FETCH_ERROR';
2 |
3 | export const setFetchError = error => {
4 | return { type: SET_FETCH_ERROR, payload: error };
5 | };
6 |
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/MatchingWireframes/matching-table.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/MatchingWireframes/matching-table.jpg
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/MenteesWireframes/mentee_calender.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/MenteesWireframes/mentee_calender.png
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/MentorWireframes/mentor_calender.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/MentorWireframes/mentor_calender.png
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/MentorWireframes/mentors_mentees.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/MentorWireframes/mentors_mentees.png
--------------------------------------------------------------------------------
/src/components/common/constants/index.js:
--------------------------------------------------------------------------------
1 | import states from './states';
2 | import countries from './countries';
3 | import tech_stack from './techstack';
4 |
5 | export { states, countries, tech_stack };
6 |
--------------------------------------------------------------------------------
/src/state/actions/auth/setProfileId.js:
--------------------------------------------------------------------------------
1 | export const SET_PROFILE_ID = 'SET_PROFILE_ID';
2 |
3 | export const setProfileId = profile_id => {
4 | return { type: SET_PROFILE_ID, payload: profile_id };
5 | };
6 |
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/AdminWireframes/Dashboard-Page-Admin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/AdminWireframes/Dashboard-Page-Admin.png
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/MatchingWireframes/matching-expanded.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/MatchingWireframes/matching-expanded.jpg
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/MenteesWireframes/mentees_meetings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/MenteesWireframes/mentees_meetings.png
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/MenteesWireframes/mentees_resources.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/MenteesWireframes/mentees_resources.png
--------------------------------------------------------------------------------
/wireframes/DeprecatedWireframes/create admin and superadmin dashboard.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/DeprecatedWireframes/create admin and superadmin dashboard.PNG
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/AdminWireframes/admin_track_resources.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/AdminWireframes/admin_track_resources.png
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/MenteesWireframes/mentees_assignments.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/MenteesWireframes/mentees_assignments.png
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/MentorWireframes/mentors_mentees_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/MentorWireframes/mentors_mentees_empty.png
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/RoleSignupWireframes/Mentee_wireframe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/RoleSignupWireframes/Mentee_wireframe.png
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/RoleSignupWireframes/Mentor_wireframe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/RoleSignupWireframes/Mentor_wireframe.png
--------------------------------------------------------------------------------
/src/state/actions/userProfile/setUserProfile.js:
--------------------------------------------------------------------------------
1 | export const SET_USER_PROFILE = 'SET_USER_PROFILE';
2 |
3 | export const setUserProfile = profile => {
4 | return { type: SET_USER_PROFILE, payload: profile };
5 | };
6 |
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/MatchingWireframes/matching-expanded-alt.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/MatchingWireframes/matching-expanded-alt.jpg
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/MenteesWireframes/mentees_meetings_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/MenteesWireframes/mentees_meetings_empty.png
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/MenteesWireframes/mentees_resources_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/MenteesWireframes/mentees_resources_empty.png
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/MentorWireframes/mentors_mentees_dropdown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/MentorWireframes/mentors_mentees_dropdown.png
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/MentorWireframes/mentors_schedule_meeting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/MentorWireframes/mentors_schedule_meeting.png
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/AdminWireframes/Dashboard-Page-Admin-Modal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/AdminWireframes/Dashboard-Page-Admin-Modal.png
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/AdminWireframes/admin_pending_applications.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/AdminWireframes/admin_pending_applications.png
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/AdminWireframes/admin_track_resources_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/AdminWireframes/admin_track_resources_empty.png
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/MenteesWireframes/mentees_assignments_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/MenteesWireframes/mentees_assignments_empty.png
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/MentorWireframes/mentors_upcoming_meetings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/MentorWireframes/mentors_upcoming_meetings.png
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/AdminWireframes/admin_request_resources_form.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/AdminWireframes/admin_request_resources_form.png
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/MentorWireframes/mentors_request_resource_form.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/MentorWireframes/mentors_request_resource_form.png
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/AdminWireframes/admin_pending_applications_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/AdminWireframes/admin_pending_applications_empty.png
--------------------------------------------------------------------------------
/src/state/actions/userProfile/setCurrentUser.js:
--------------------------------------------------------------------------------
1 | export const SET_CURRENTUSER_PROFILE = 'SET_CURRENTUSER_PROFILE';
2 |
3 | export const setCurrentUser = profile => {
4 | return { type: SET_CURRENTUSER_PROFILE, payload: profile };
5 | };
6 |
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/MentorWireframes/mentors_assigned_resources_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/MentorWireframes/mentors_assigned_resources_empty.png
--------------------------------------------------------------------------------
/src/components/pages/Schedule/Schedule.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | export function Schedule({ LoadingComponent }) {
4 | return (
5 | <>
6 |
This is a test render from Schedule
7 | >
8 | );
9 | }
10 |
--------------------------------------------------------------------------------
/wireframes/DeprecatedWireframes/AdminDashboardpendingapprovalmentormenteeavailability.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/DeprecatedWireframes/AdminDashboardpendingapprovalmentormenteeavailability.PNG
--------------------------------------------------------------------------------
/wireframes/NewDesignProposition/RoleSignupWireframes/mentor_mentee_application_forms.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BloomTech-Labs/underdog-devs-fe-a/HEAD/wireframes/NewDesignProposition/RoleSignupWireframes/mentor_mentee_application_forms.png
--------------------------------------------------------------------------------
/src/components/pages/Profile/Profile.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | export function Profile({ LoadingComponent }) {
4 | return (
5 | <>
6 | This is a test render from Profile page
7 | >
8 | );
9 | }
10 |
--------------------------------------------------------------------------------
/src/components/pages/RoleApply/Applications/Styles/test.css:
--------------------------------------------------------------------------------
1 | label {
2 | background-color: transparent;
3 | }
4 |
5 | /*
6 | TODO: Find why putting this in mentorApplication.css does not work
7 | Why does it work on a separate file?
8 | */
9 |
--------------------------------------------------------------------------------
/src/state/actions/auth/setIsAuthenticated.js:
--------------------------------------------------------------------------------
1 | export const SET_IS_AUTHENTICATED = 'SET_IS_AUTHENTICATED';
2 |
3 | export const setIsAuthenticated = isAuthenticated => {
4 | return { type: SET_IS_AUTHENTICATED, payload: isAuthenticated };
5 | };
6 |
--------------------------------------------------------------------------------
/src/state/actions/userProfile/setApplicationProfile.js:
--------------------------------------------------------------------------------
1 | export const SET_APPLICATION_PROFILE = 'SET_APPLICATION_PROFILE';
2 |
3 | export const setApplicationProfile = profile => {
4 | return { type: SET_APPLICATION_PROFILE, payload: profile };
5 | };
6 |
--------------------------------------------------------------------------------
/src/components/pages/Availability/Availability.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | export function Availability({ LoadingComponent }) {
4 | return (
5 | <>
6 | This is a test render from Availavility
7 | >
8 | );
9 | }
10 |
--------------------------------------------------------------------------------
/src/state/actions/applications/setCurrentApplication.js:
--------------------------------------------------------------------------------
1 | export const SET_CURRENT_APPLICATION = 'SET_CURRENT_APPLICATION';
2 |
3 | export const setCurrentApplication = application => {
4 | return { type: SET_CURRENT_APPLICATION, payload: application };
5 | };
6 |
--------------------------------------------------------------------------------
/src/components/common/LoadingComponent.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import SkeletonLoadingComponent from './SkeletonLoading';
3 |
4 | const LoadingComponent = props => {
5 | return ;
6 | };
7 |
8 | export default LoadingComponent;
9 |
--------------------------------------------------------------------------------
/src/components/pages/Attendance/attendance.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | const Attendance = () => {
4 | return (
5 | <>
6 | View Mentee Attendance component goes here
7 | >
8 | );
9 | };
10 | export default Attendance;
11 |
--------------------------------------------------------------------------------
/src/components/pages/SuperAdminForm/SuperAdminFormContainer.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import SuperAdminForm from './SuperAdminForm';
3 |
4 | function SuperAdminFormContainer({ LoadingComponent }) {
5 | return ;
6 | }
7 |
8 | export default SuperAdminFormContainer;
9 |
--------------------------------------------------------------------------------
/src/components/pages/Analytics/Analytics.css:
--------------------------------------------------------------------------------
1 | .analyticsHeader h1 {
2 | font-size: 2rem;
3 | padding-left: 10px;
4 | }
5 |
6 | .techStackGraphInfo {
7 | width: 70%;
8 | }
9 |
10 | .analytics {
11 | display: flex;
12 | flex-direction: column;
13 | align-items: center;
14 | gap: 2rem;
15 | }
16 |
--------------------------------------------------------------------------------
/src/components/pages/ManageResources/ManageResources.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { RenderResourceManagement } from './RenderResourceManagement';
3 |
4 | export function ManageResources({ LoadingComponent }) {
5 | return (
6 | <>
7 |
8 | >
9 | );
10 | }
11 |
--------------------------------------------------------------------------------
/src/components/pages/Profile/ProfileContainer.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import RenderProfile from './RenderProfileContainer';
3 |
4 | function ProfileContainer({ LoadingComponent }) {
5 | return (
6 | <>
7 |
8 | >
9 | );
10 | }
11 |
12 | export default ProfileContainer;
13 |
--------------------------------------------------------------------------------
/src/state/actions/userMatches/setUserMatches.js:
--------------------------------------------------------------------------------
1 | export const SET_USER_MATCHES = 'SET_USER_MATCHES';
2 |
3 | export const setUserMatches = arrOfMatches => {
4 | let payload = arrOfMatches.map(row => {
5 | return {
6 | ...row,
7 | };
8 | });
9 | return { type: SET_USER_MATCHES, payload };
10 | };
11 |
--------------------------------------------------------------------------------
/src/components/common/Loading.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | const loadingImg =
3 | 'https://cdn.auth0.com/blog/auth0-react-sample/assets/loading.svg';
4 |
5 | const Loading = () => (
6 |
7 |

8 |
9 | );
10 |
11 | export default Loading;
12 |
--------------------------------------------------------------------------------
/src/setupTests.js:
--------------------------------------------------------------------------------
1 | // jest-dom adds custom jest matchers for asserting on DOM nodes.
2 | // allows you to do things like:
3 | // expect(element).toHaveTextContent(/react/i)
4 | // learn more: https://github.com/testing-library/jest-dom
5 | import '@testing-library/jest-dom/extend-expect';
6 | import 'jest-prop-type-error';
7 | import 'jest-canvas-mock';
8 |
--------------------------------------------------------------------------------
/src/state/actions/userMatches/setSuggestedMatches.js:
--------------------------------------------------------------------------------
1 | export const SET_SUGGESTED_MATCHES = 'SET_SUGGESTED_MATCHES';
2 |
3 | export const setSuggestedMatches = arrOfSugMatches => {
4 | let payload = arrOfSugMatches.map(row => {
5 | return {
6 | ...row,
7 | };
8 | });
9 | return { type: SET_SUGGESTED_MATCHES, payload };
10 | };
11 |
--------------------------------------------------------------------------------
/src/utils/README.md:
--------------------------------------------------------------------------------
1 | ## Utils
2 |
3 | - This directory is for any of the business logic that your application may need to use.
4 | - Simple one-off _helper_ functions that you may need can be defined in this directory.
5 | - Any reusable logic or handlers or config files can also be used here.
6 | - **REMINDER do not** check any sensitive information into git
7 |
--------------------------------------------------------------------------------
/src/state/actions/allUsers/getAllUsers.js:
--------------------------------------------------------------------------------
1 | import { setAllUsers } from './setAllUsers';
2 | import axios from 'axios';
3 | import { API_URL } from '../../../config';
4 |
5 | export const getAllUsers = role => async dispatch => {
6 | const res = await axios.post(`${API_URL}users/read/${role}`);
7 | dispatch(setAllUsers(res.data, role));
8 | return res.data;
9 | };
10 |
--------------------------------------------------------------------------------
/src/state/actions/userProfile/getProfile.js:
--------------------------------------------------------------------------------
1 | import { setUserProfile } from './setUserProfile';
2 | import axios from 'axios';
3 | import { API_URL } from '../../../config';
4 |
5 | export const getProfile = role => async dispatch => {
6 | const res = await axios.get(`${API_URL}profile/role/${role}`);
7 | dispatch(setUserProfile(res.data));
8 | return res.data;
9 | };
10 |
--------------------------------------------------------------------------------
/src/components/pages/NotFound/NotFoundPage.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { Link } from 'react-router-dom';
3 |
4 | const NotFoundPage = () => {
5 | return (
6 |
7 |
404 Page Not Found
8 |
9 |
10 |
11 |
12 | );
13 | };
14 |
15 | export default NotFoundPage;
16 |
--------------------------------------------------------------------------------
/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | }
10 | ],
11 | "start_url": ".",
12 | "display": "standalone",
13 | "theme_color": "#000000",
14 | "background_color": "#ffffff"
15 | }
16 |
--------------------------------------------------------------------------------
/src/components/pages/Navbar/NavbarFeatures/MentorPopover.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | const MentorPopover = () => (
4 | <>
5 |
6 | Please indicate if you are
7 | available to take on new mentees.
8 | This is an important part of our matching
9 | process.
10 |
11 | >
12 | );
13 | export default MentorPopover;
14 |
--------------------------------------------------------------------------------
/src/hooks/useLocalStorage.js:
--------------------------------------------------------------------------------
1 | import { useState } from 'react';
2 |
3 | export default function useLocalStorage(key, initValue) {
4 | const [storedValue, setStoredValue] = useState(() => {
5 | return localStorage.getItem(key) || initValue;
6 | });
7 | const setValue = value => {
8 | setStoredValue(value);
9 | localStorage.setItem(key, value);
10 | };
11 | return [storedValue, setValue];
12 | }
13 |
--------------------------------------------------------------------------------
/src/state/reducers/themeReducer.js:
--------------------------------------------------------------------------------
1 | import * as ACTIONS from '../actions/index';
2 |
3 | const initialState = {
4 | theme: 'dark',
5 | };
6 |
7 | const themeReducer = (state = initialState, action) => {
8 | switch (action.type) {
9 | case ACTIONS.SET_THEME:
10 | return { ...state, theme: action.payload };
11 | default:
12 | return state;
13 | }
14 | };
15 |
16 | export default themeReducer;
17 |
--------------------------------------------------------------------------------
/amplify.yml:
--------------------------------------------------------------------------------
1 | version: 1
2 | frontend:
3 | phases:
4 | preBuild:
5 | commands:
6 | - nvm use $VERSION_NODE_12
7 | - npm ci
8 | build:
9 | commands:
10 | - nvm use $VERSION_NODE_12
11 | - node -v
12 | - npm run-script build
13 | artifacts:
14 | baseDirectory: build
15 | files:
16 | - "**/*"
17 | cache:
18 | paths:
19 | - node_modules/**/*
20 |
--------------------------------------------------------------------------------
/src/__mocks__/CreateTestStore.js:
--------------------------------------------------------------------------------
1 | import { configureStore } from '@reduxjs/toolkit';
2 | import rootReducer from '../state/reducers/index';
3 | import promiseMiddleware from 'redux-promise';
4 | import thunk from 'redux-thunk';
5 |
6 | export default function createTestStore() {
7 | const store = configureStore({
8 | reducer: rootReducer,
9 | middleware: [thunk, promiseMiddleware],
10 | });
11 | return store;
12 | }
13 |
--------------------------------------------------------------------------------
/src/state/actions/userMatches/updateUserMatches.js:
--------------------------------------------------------------------------------
1 | import axios from 'axios';
2 | import { API_URL } from '../../../config/index';
3 |
4 | export const updateUserMatches =
5 | (profile, matchArr, role) => async dispatch => {
6 | role = role.toLowerCase();
7 | await axios({
8 | method: 'patch',
9 | url: `${API_URL}matches/update/${role}/${profile.profile_id}`,
10 | data: matchArr,
11 | });
12 | return;
13 | };
14 |
--------------------------------------------------------------------------------
/craco.config.js:
--------------------------------------------------------------------------------
1 | const config = require('./src/styles/theme-overrides.js');
2 | const CracoLessPlugin = require('craco-less');
3 |
4 | module.exports = {
5 | plugins: [
6 | {
7 | plugin: CracoLessPlugin,
8 | options: {
9 | lessLoaderOptions: {
10 | lessOptions: {
11 | modifyVars: config,
12 | javascriptEnabled: true,
13 | },
14 | },
15 | },
16 | },
17 | ],
18 | };
19 |
--------------------------------------------------------------------------------
/src/components/pages/Analytics/Analytics.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import TechStackGraph from './TechStackGraph';
3 | import './Analytics.css';
4 |
5 | const Analytics = () => {
6 | return (
7 | <>
8 |
9 |
Analytics
10 |
11 |
12 |
13 |
14 | >
15 | );
16 | };
17 |
18 | export default Analytics;
19 |
--------------------------------------------------------------------------------
/src/__tests__/LoadingComponent.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { render } from '@testing-library/react';
3 |
4 | import { LoadingComponent } from '../components/common';
5 |
6 | describe('Loading Common Component', () => {
7 | test('it should mount a div based on props', () => {
8 | const loading = render();
9 | const skeletonLoading = loading.findByTestId('skeleton-loading');
10 | expect(skeletonLoading).toBeTruthy();
11 | });
12 | });
13 |
--------------------------------------------------------------------------------
/.eslint:
--------------------------------------------------------------------------------
1 | {
2 | "parser": "babel-eslint",
3 | "env": {
4 | "browser": true,
5 | "node": true,
6 | "jest": true
7 | },
8 | "plugins": [
9 | // ...
10 | "react-hooks"
11 | ],
12 | "rules": {
13 | // ...
14 | "react-hooks/rules-of-hooks": "error", // Checks rules of Hooks
15 | "react-hooks/exhaustive-deps": "warn", // Checks effect dependencies
16 | "semi": "error"
17 | },
18 | "ignorePatterns": ["src/__tests__/**, **/*.spec.js"],
19 | "extends": "react-app"
20 | }
21 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # env
12 | .env
13 |
14 | # logs
15 | *.log
16 |
17 | # production
18 | /build
19 |
20 | # misc
21 | .DS_Store
22 | .env.local
23 | .env.development.local
24 | .env.test.local
25 | .env.production.local
26 |
27 | npm-debug.log*
28 | yarn-debug.log*
29 | yarn-error.log*
30 | .vscode
31 |
32 | # Idea Folder
33 | .idea/
34 |
--------------------------------------------------------------------------------
/src/components/common/index.js:
--------------------------------------------------------------------------------
1 | import FormButton from './FormButton';
2 | import FormInput from './FormInput';
3 | import LoadingComponent from './LoadingComponent';
4 | import Button from './Button';
5 | import PrivateRoute from './PrivateRoute';
6 | // notice we're building out a 'package' of reusables here and exporting them as an object of component properties.
7 | // to use this, simply `import {foo, bar, baz} from '/ReusableComponents';`
8 | export { FormButton, FormInput, LoadingComponent, Button, PrivateRoute };
9 |
--------------------------------------------------------------------------------
/src/components/common/PrivateRoute.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { Route } from 'react-router-dom';
3 | import { withAuthenticationRequired } from '@auth0/auth0-react';
4 | import Sidebar from './Sidebar/Sidebar';
5 | import { Spin } from 'antd';
6 |
7 | const PrivateRoute = ({ component, ...args }) => (
8 |
9 | ,
12 | })}
13 | {...args}
14 | />
15 |
16 | );
17 |
18 | export default PrivateRoute;
19 |
--------------------------------------------------------------------------------
/src/components/common/styles/Sidebar.css:
--------------------------------------------------------------------------------
1 | #darkmode {
2 | display: flex;
3 | align-items: center;
4 | justify-content: space-between;
5 | }
6 |
7 | .hidden {
8 | display: none;
9 | }
10 |
11 | .site-layout .site-layout-background {
12 | height: 5%;
13 | margin-top: 20%;
14 | display: flex;
15 | padding-top: 1%;
16 | justify-content: center;
17 | align-items: center;
18 | color: white;
19 | border-radius: 0 5px 5px 0;
20 | width: 2% !important;
21 | flex: 0 !important;
22 | max-width: auto !important;
23 | min-width: auto !important;
24 | }
25 |
--------------------------------------------------------------------------------
/src/components/common/ScheduleMeeting.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import CalendarFeature from './Calendar';
3 | // import SwitchablePicker from './DialogButton/ScheduleButton';
4 |
5 | // SwitchablePicker is throwing up a lot of errors, and it seems incomplete
6 | // so for the time being, that addition is commented out.
7 | const ScheduleMeeting = () => {
8 | return (
9 | <>
10 |
11 | {/*
12 |
13 |
*/}
14 | >
15 | );
16 | };
17 |
18 | export default ScheduleMeeting;
19 |
--------------------------------------------------------------------------------
/src/__tests__/NotFoundPage.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { render } from '@testing-library/react';
3 | import { BrowserRouter as Router } from 'react-router-dom';
4 | import { NotFoundPage } from '../components/pages/NotFound';
5 |
6 | describe('Loading Common Component', () => {
7 | test('it should mount a div based on props', () => {
8 | const { getByText } = render(
9 |
10 |
11 |
12 | );
13 | const h1 = getByText(/404 page not found/i);
14 | expect(h1.textContent).toBe('404 Page Not Found');
15 | });
16 | });
17 |
--------------------------------------------------------------------------------
/src/components/common/styles/Calendar.css:
--------------------------------------------------------------------------------
1 | .events {
2 | margin: 0;
3 | padding: 0;
4 | list-style: none;
5 | }
6 | .events .ant-badge-status {
7 | width: 100%;
8 | overflow: hidden;
9 | font-size: 12px;
10 | white-space: nowrap;
11 | text-overflow: ellipsis;
12 | }
13 | .notes-month {
14 | font-size: 28px;
15 | text-align: center;
16 | }
17 | .notes-month section {
18 | font-size: 28px;
19 | }
20 | .DialogBox {
21 | display: flex;
22 | margin-top: 2%;
23 | justify-content: center;
24 | }
25 | .description {
26 | background-color: white;
27 | color: black;
28 | height: 150px;
29 | }
30 |
--------------------------------------------------------------------------------
/src/components/common/constants/techstack.js:
--------------------------------------------------------------------------------
1 | const tech_stack = [
2 | {
3 | label: 'Android',
4 | value: 'Android',
5 | },
6 | {
7 | label: 'Backend',
8 | value: 'Backend',
9 | },
10 | {
11 | label: 'Data Science',
12 | value: 'Data Science',
13 | },
14 | {
15 | label: 'Design UI/UX',
16 | value: 'Design UI/UX',
17 | },
18 | {
19 | label: 'Frontend',
20 | value: 'Frontend',
21 | },
22 | {
23 | label: 'Full Stack',
24 | value: 'Full Stack',
25 | },
26 | {
27 | label: 'iOS',
28 | value: 'iOS',
29 | },
30 | ];
31 |
32 | export default tech_stack;
33 |
--------------------------------------------------------------------------------
/src/components/pages/Navbar/NavbarFeatures/ExampleFeature.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { Button } from 'antd';
3 |
4 | // Make this component yours!!
5 |
6 | // Rename File name
7 |
8 | // Rename function name on line 16
9 |
10 | // Rename className on line 18
11 |
12 | // Rename export on line 24
13 |
14 | // Import component in index.js
15 |
16 | const ExampleFeature = () => {
17 | return (
18 |
19 | {/* Your Component Here */}
20 |
23 |
24 | );
25 | };
26 | export default ExampleFeature;
27 |
--------------------------------------------------------------------------------
/src/components/common/Size&Devices.js:
--------------------------------------------------------------------------------
1 | const size = {
2 | mobileS: '320px',
3 | mobileM: '375px',
4 | mobileL: '425px',
5 | tablet: '768px',
6 | laptop: '1024px',
7 | laptopL: '1440px',
8 | desktop: '2560px',
9 | };
10 |
11 | export const device = {
12 | mobileS: `(min-width: ${size.mobileS})`,
13 | mobileM: `(min-width: ${size.mobileM})`,
14 | mobileL: `(min-width: ${size.mobileL})`,
15 | tablet: `(min-width: ${size.tablet})`,
16 | laptop: `(min-width: ${size.laptop})`,
17 | laptopL: `(min-width: ${size.laptopL})`,
18 | desktop: `(min-width: ${size.desktop})`,
19 | desktopL: `(min-width: ${size.desktop})`,
20 | };
21 |
--------------------------------------------------------------------------------
/src/components/pages/AdminMeetingsDashBoard/DynamicDropdown.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { Select } from 'antd';
3 |
4 | const DynamicDropdown = ({ options, placeholder, onChange }) => {
5 | return (
6 |