Git Product home page Git Product logo

capstone-react-jobie's People

Contributors

ayasalam0 avatar bnar98 avatar ge6ben avatar rebaz36 avatar wisammechano avatar zahrayh avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

rebaz36

capstone-react-jobie's Issues

create the app navbar and search component

Routes:
Home -> /
About -> /about
Roadmaps -> /roadmaps
Jobs -> /jobs
Contact -> /contact
Search -> Expands a search bar with autocomplete, and on submit navigates to /search/[query]
Login -> /login

image

implement registration function using firebase auth

You need to create a user slice inside redux with the required data. When a user registers, you dispatch the username & password, then create a user profile in firebase, then commit a user object to redux. When the user isn't logged in, the slice initial state should be user: null

Additionally, the user slice needs to also hold if the user isCompany so upon registration, you need to check if it is a company registration or a user registration, and add that to the firestore profile collection.

This action when dispatched uses firebase auth to create the user, but also, uses firestore to populate a company or user profile.

All profiles go to profiles collection, even if their schema is different. However, companies need to have isCompany = true in its schema

Add 10 mock jobs to database

this is no code issue. We need to seed the database with mock jobs to start linking the pages to the database. You can create a json file for 10 jobs, and I will add them to the database.

Extend tailwind with the required colors and fonts

accent: #EC7063
dark: #34495E
light: #E7ECF2
primary: #072451
secondary: #154360

These are extracted from the Figma file. You would stick to these colors only plus gray-200 for highlighting, and white when necessary.

Also, please make sure to onboard your peers on how to use these when they work on their components.

connect the login pop up to navbar component

it needs to be a modal in the navbar that displays the login pop up on any page. We also need to check if the user doesn't have a profile, to show a complete your profile action in the navbar to direct them towards the edit profile page.

unify components file naming to start with uppercase

change footer.js to Footer.js and apply the same to all other components. Pages should be kept lowercase because they identify route information.

To rename files on windows, use the git mv command so git would update its index for case-sensitive renaming as follows:

first cd components
then git mv footer.js Footer.js then do the same for all other files

finally, update the imports of these components, commit your changes and push.

Implement RoadMap Page

make the road map page use the header that's already created and the component that is made for the logos

issue 2

Create the page customizable header

It needs to accept a dark=true prop to render a dark header on home page, otherwise it should be light. It needs to accept a picture as a prop, a title, and description.

It should also correctly render children as the action item when needed

image

implement a createJob action

This action will create a job, add it to the firebase jobs collection, and then add it to the store. It should only be possible for companies to post jobs.

Initialize firebase into the app

Create a firebase project, and link it to the app using firebase.js file, then export authentication and database to be used later in either redux, or a custom hook.

Additionally, please configure the store with firebase as seen in this video with few adjustments:

  1. You won't have createStore function, instead since we are using Redux-Toolkit, you have a function called configureStore
  2. In order to add the extra arguments for thunk middleware with configureStore check out this document
  3. To pass the enhancers to redux-toolkit store, please read the documentation for configurStore
  4. In the video, you have the thunk created with extra arguments coming with dispatch. In Redux toolkit, it is slightly different. You can refer to this line of code for example, this callback function is called payloadCreator, next to the argument amount you can have another argument called thunkAPI that comes last. Inside of it there is a property called extra which contains the extra arguments that are passed to configureStore in step 1. Will allow you to access firebase.

Enable user permission

Create custom hooks for isLoggedIn and isCompany to prevent users to access certain pages. Also prevent users to access the "Proposals" tab in single job page. In addition company profile should not be able to apply button but instead either "View" for home table or "Edit" if this is their job.

fix spec files in pages are blocking deployment

when building next app, build fails due to test files inside /pages, to fix it, we need to move .spec.js files outside /pages

$ next build

16:29:56.624 | > Build error occurred
16:29:56.626 | ReferenceError: describe is not defined
16:29:56.627 | at Module.4565 (/vercel/path0/.next/server/pages/index.spec.js:27:1)
16:29:56.627 | at __webpack_require__ (/vercel/path0/.next/server/webpack-runtime.js:25:43)
16:29:56.627 | at __webpack_exec__ (/vercel/path0/.next/server/pages/index.spec.js:164:39)
16:29:56.627 | at /vercel/path0/.next/server/pages/index.spec.js:165:69
16:29:56.627 | at Function.__webpack_require__.X (/vercel/path0/.next/server/webpack-runtime.js:108:21)
16:29:56.628 | at /vercel/path0/.next/server/pages/index.spec.js:165:47
16:29:56.628 | at Object.<anonymous> (/vercel/path0/.next/server/pages/index.spec.js:168:3)
16:29:56.628 | at Module._compile (internal/modules/cjs/loader.js:1085:14)
16:29:56.628 | at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
16:29:56.629 | at Module.load (internal/modules/cjs/loader.js:950:32) {
16:29:56.629 | type: 'ReferenceError'
16:29:56.629 | }
16:29:56.683 | error Command failed with exit code 1.
16:29:56.683 | info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
16:29:56.700 | Error: Command "yarn run build" exited with 1

implement login function using firebase auth

use issue #69 redux slice. You need to create the payload creator to login a user or company then dispatches to the store. No need to create the slice, only the action, and action creator.

Clean-Up & Adding Necessary files

This is to Clean up the index.js file so we can use it for testing until we set up the routing and adding the images we use in the website

implement create a job page

It shouldn't contain the navbar and footer, those can be added into a layout component that wraps the whole app. Just what's in between

image

create contact us page

While this is a page, we will implement a layout that takes the navbar and footer, then renders children inside a <main> tag.

So, your page shouldn't include the navbar and footer, but still a page. The filename should be contact.js so the route /contact works

image

create the footer component

Although here it shows multiple irrelevent link placeholders, preferably decide on which links to include, even if it doesn't go anywhere

like: privacy policy, terms of agreement, etc..

The year for the copyright statement needs to be dynamic by reading current year from new Date()

image

Fix company related components

Company Header:

  • reduce size of image
  • correct colors
  • set consistent width

Job Listing

  • fix the display and width
  • display image or first letter in case image is not provided

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.