https://github.com/olha-dev-fullstack/graphql-job-board
This is a simple GraphQL job board application that enables users to sign in, create, manage, and publish job vacancies withing their company.
https://github.com/olha-dev-fullstack/graphql-job-board
apollo-client graphql knex sqlite
Last synced: 6 months ago
JSON representation
This is a simple GraphQL job board application that enables users to sign in, create, manage, and publish job vacancies withing their company.
- Host: GitHub
- URL: https://github.com/olha-dev-fullstack/graphql-job-board
- Owner: olha-dev-fullstack
- Created: 2025-01-15T09:40:21.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-01-17T08:16:37.000Z (about 1 year ago)
- Last Synced: 2025-01-24T20:39:21.292Z (about 1 year ago)
- Topics: apollo-client, graphql, knex, sqlite
- Language: JavaScript
- Homepage:
- Size: 495 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# GraphQL Job Board
This is a simple GraphQL job board application that enables users to sign in, create, manage, and publish job vacancies withing their company.
## 🚀 Features
- **User Authentication**: Sign-in functionality.
- **Vacancy Management**: Create, update, delete vacancies within certain companies
## 🛠️ Tech Stack
### Backend
- **JavaScript**
- **TypeScript**
- **Apollo Server**
- **GraphQL**
- **Knex**
- **SQLite**
### Frontend
- **React.js**
## 📜 GraphQL Schema
```javascript
type Query {
company(id: ID!): Company
job(id: ID!): Job
jobs(limit: Int, offset: Int): JobSubList
}
type Mutation {
createJob(input: CreateJobInput!): Job
deleteJob(id: ID!): Job
updateJob(input: UpdateJobInput!): Job
}
type Company {
id: ID!
name: String!
description: String
jobs: [Job!]!
}
type Job {
id: ID!
"""The __date__ when the job was published, in ISO-8601 format. E.g. `2022-12-31`."""
date: String!
title: String!
company: Company!
description: String
}
type JobSubList {
items: [Job!]!
totalCount: Int!
}
input CreateJobInput {
title: String!
description: String
}
input UpdateJobInput {
id: ID!
title: String!
description: String
}
```
## 📦 Project Setup
1. **Clone the repository:**
```bash
git clone https://github.com/olha-dev-fullstack/graphql-job-board
```
2. **Install dependencies:**
```bash
cd client
npm install
cd server
npm install
```
5. **Start the server:**
```bash
cd client
npm start
cd server
npm start
```
## 🎯 Usage Instructions
- Access the frontend to sign in and manage vacancies at http://localhost:3000
- GraphQl Playground to test API: http://localhost:9000/graphql