Git Product home page Git Product logo

jobsgowhere's Introduction

JobsGoWhere

Job board for people who lost their jobs during covid crisis.

Check our contribution guidelines if you want to contribute to this project.

Steps to setup database on a local postgres instance

  1. Install golang-migrate on mac using brew install golang-migrate
  2. Create a local postgresql instance and a database josbsgowhere
  3. Run make redo-local-db. (Note: this step will drop and recreate objects in database)

Here is the link to install migrate for mac, linux and windows users: https://github.com/golang-migrate/migrate/tree/master/cmd/migrate

Steps to run with go

  1. In root dir of the project folder, cd ui
  2. Run yarn install && yarn build to install and then build
  3. cd .. back to root and run go run main.go
  4. Navigate to localhost:8080

Contributors

jobsgowhere's People

Contributors

dependabot[bot] avatar friederbluemle avatar hanmd82 avatar ivanfoong avatar jacobtyq avatar kajalsinha avatar lxcid avatar ng95junwei avatar sheldoncheng avatar subhransu avatar zr-faisal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jobsgowhere's Issues

Bug - Change frontend API URL

Deployed the latest code to dev.jobsgowhere.com

However, it fails to fetch the response as the URL is hardcoded to the localhost.
Screenshot 2020-04-10 at 11 08 45 PM

Replace this to point the hardcoded URL to HOST_URL

Authentication mechanism

There's a few authentication mechanisms that I can think of to support:

  1. Our own signup/login
  2. LinkedIn https://docs.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/sign-in-with-linkedin?context=linkedin/consumer/context
  3. Google Sign-in https://developers.google.com/identity/sign-in/web/sign-in

LinkedIn

Pros

  1. ability to load work profile for job seekers
  2. ability to load company profile for job posters

Cons

  1. user base needs to have LinkedIn account

Google

Pros

  1. more likely to have a gmail account for most user base

Cons

  1. not much information to pre-populate other than email address

Would we want to only help users with LinkedIn account? Older non tech savvy folks might not have LinkedIn account, but then again they might not even use our app.

Cleanup Issue Labels

The ones that we have in place right might not work for us.
I think it might make sense to use labels to prioritize issues as well.

Figure out the frontend architecture

From #1

Should be assigned to @lxcid and @SheldonCheng

Action Items

  • Find out whether you want to use React / Next.js or both with golang backend (@lxcid and @SheldonCheng to discuss)
    • @SheldonCheng: for integration with golang, it shoudln't be too different from react i think.
      it can be built into static html and served, just that initial api calls and page rendering happens on server
      don't think we will have a lot of static pages so perhaps no great advantage to using nextjs here (other than SEO maybe). So prob can just use standard react
  • TypeScript or JavaScript
    • TypeScript, learning experience for implementors

Create basic database structure of jobsgowhere

I was thinking of creating a basic table structure which should be strong enough to get started. This is just the beginning so foreign key references are not mapped. I want to design it in a way that in future it can be broken down to micro services by feature i.e. set of related features can be grouped in one micro service.

Please suggest changes/thoughts. Thanks!

-- Add your release scripts here
CREATE TABLE person
(
    id           UUID PRIMARY KEY,
    iam_id       TEXT      NOT NULL UNIQUE,
    dp_url       TEXT,
    email        TEXT      NOT NULL,
    iam_provider TEXT      NOT NULL,
    created_at   TIMESTAMP NOT NULL,
    CONSTRAINT UNIQUE (email, iam_provider)
);

CREATE TABLE job
(
    id          UUID PRIMARY KEY,
    title       TEXT      NOT NULL,
    description TEXT      NOT NULL,
    location    TEXT      NOT NULL,
    created_by  TEXT      NOT NULL,
    created_at  TIMESTAMP NOT NULL
);

CREATE TABLE skill
(
    id          UUID PRIMARY KEY,
    title       TEXT UNIQUE NOT NULL,
    description TEXT
);


CREATE TABLE related_skills (
    -- todo
)

CREATE TABLE job_skill_map
(
    job_id   UUID NOT NULL,
    skill_id UUID NOT NULL,
    required BOOL DEFAULT FALSE,
);

CREATE TABLE job_seeker
(
    person_id       UUID PRIMARY KEY,
    title           TEXT      NOT NULL,
    current_company TEXT,
    created_at      TIMESTAMP NOT NULL
);

CREATE TABLE job_provider
(
    person_id       UUID PRIMARY KEY,
    title           TEXT      NOT NULL,
    current_company TEXT      NOT NULL,
    created_at      TIMESTAMP NOT NULL
);

Frontend - Connect (Send Message to user)

API URL

http://dev.jobsgowhere.com/api/sendmessage

Header

Set the authorization header

Body

{
	"from": "<id_of_sender>", 
	"to": "<id_of_receiver>", 
	"subject": "<message_subject>", 
	"body": "<message_body>"
}

Check #76 for reference.

Add GTM codes

From Yao Long in #general 17/6

<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-NNN3PVC');</script>
<!-- End Google Tag Manager -->
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NNN3PVC"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->

image

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.