Skip to content

Commit cc5e4fe

Browse files
edwnlmonash-codingoliverhuangcodejason301cje-zhou
authored
merge to prod (#150)
Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: monash-coding <[email protected]> Co-authored-by: oliverhuangcode <[email protected]> Co-authored-by: JasonA <[email protected]> Co-authored-by: Jerry Zhou <[email protected]> Co-authored-by: Brian-w-m <[email protected]> Co-authored-by: kyranaus <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: AdityaZDesai <[email protected]> Co-authored-by: jason301c <[email protected]>
1 parent 1a79223 commit cc5e4fe

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+4206
-1069
lines changed

.github/workflows/lint-checker.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
name: Frontend Lint Checker
22

33
on:
4-
push:
5-
paths:
6-
- 'frontend/**'
74
pull_request:
85
paths:
96
- 'frontend/**'

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,5 +59,10 @@ desktop.ini
5959
*.bak
6060
*.backup
6161

62+
# Lock file for pnpm
63+
pnpm-lock.yaml
6264

6365
/repo-to-text/
66+
67+
# Typescript build info
68+
frontend/tsconfig.tsbuildinfo

README.md

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,28 @@
1-
# MPloy Job Board
1+
# MAC Job Board
22

3-
A modern job board application built with Next.js, Spring Boot, and Go, designed to help students find internships and job opportunities.
3+
Hey there! 👋
44

5-
### Frontend
6-
- Next.js 15 with App Router
7-
- React 19
8-
- TypeScript
9-
- Mantine UI
10-
- Tailwind CSS
5+
This is a modern, intelligent job board platform that automatically aggregates job listings, providing users with a streamlined experience to search, filter, and discover relevant opportunities. The platform updates daily with fresh listings through our smart AI robots.
116

12-
### Backend
13-
- Spring Boot (Kotlin)
14-
- Redis for caching
15-
- RESTful APIs
7+
## Features 🚀
8+
- Jobs update automatically every single day from various sources (automatically deduplicated)
9+
- We use AI to help fix, sort and summarise the listings
10+
- You can filter for exactly what you want (e.g. Big Tech Intern Roles for Interational students)
11+
- Works perfectly on phone or laptop
12+
13+
## Frontend
14+
15+
- Next.js 15: Utilizing the App Router for server-side rendering and optimized client-side navigation
16+
- React 19: For building the interactive user interface components
17+
- TypeScript: Ensuring type safety across the codebase
18+
- Mantine UI: For consistent, accessible UI components
19+
- Tailwind CSS: For utility-first styling and responsive design
20+
21+
## Backend
22+
23+
- Server Actions: Answers search and feedback requests
24+
- MongoDB: Stores job listings and related metadata
25+
- GoLang: Powers our web robots (this part is not open source)
1626

1727
## Getting Started
1828

@@ -53,7 +63,6 @@ cd backend
5363
Examples:
5464
- backend/edwn/redis-caching
5565
- frontend/sarah/job-filters
56-
- fullstack/alex/docker-setup
5766
```
5867

5968
## License

backend/Dockerfile.dev

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
FROM gradle:8.12-jdk21 AS build
22
WORKDIR /app
3+
ENV HOME /root
34
COPY . .
45
RUN chmod +x ./gradlew
5-
CMD ["./gradlew", "bootRun"]
6+
RUN chmod +x start.sh && ./gradlew getDependencies
7+
CMD ["sh", "start.sh"]

backend/build.gradle.kts

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ repositories {
1919
}
2020

2121
dependencies {
22+
developmentOnly("org.springframework.boot:spring-boot-devtools")
2223
implementation("org.springframework.boot:spring-boot-starter")
2324
implementation("org.jetbrains.kotlin:kotlin-reflect")
2425
implementation("org.springframework.boot:spring-boot-starter-web")
@@ -29,4 +30,20 @@ kotlin {
2930
compilerOptions {
3031
freeCompilerArgs.addAll("-Xjsr305=strict")
3132
}
32-
}
33+
}
34+
35+
tasks.register<Copy>("getDependencies") {
36+
from(sourceSets.main.get().runtimeClasspath)
37+
into("runtime/")
38+
39+
doFirst {
40+
val runtimeDir = File("runtime")
41+
runtimeDir.deleteRecursively()
42+
runtimeDir.mkdir()
43+
}
44+
45+
doLast {
46+
File("runtime").deleteRecursively()
47+
}
48+
}
49+

backend/src/main/kotlin/com/mac/mploy/controller/HelloController.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,4 @@ class HelloController(
2727
throw e
2828
}
2929
}
30-
}
30+
}

backend/src/main/resources/application.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,13 @@ logging:
1717
io.lettuce.core: DEBUG
1818

1919
server:
20-
port: 8080
20+
port: 8080
21+
22+
devtools:
23+
restart:
24+
enabled: true
25+
26+
# Enable LiveReload if needed
27+
spring.devtools.livereload.enabled: true
28+
29+
spring.devtools.reload.trigger-file: .reloadtrigger

backend/start.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Start spring boot devtools process in the background.
2+
# This is necessary for hot reload.
3+
(./gradlew -t :bootJar) &
4+
# Next, start the app.
5+
# The "PskipDownload" option ensures dependencies are not downloaded again.
6+
./gradlew bootRun -PskipDownload=true --parallel --build-cache --continuous

docker-compose.dev.yml

Lines changed: 48 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,48 @@
1-
version: '3.8'
2-
3-
services:
4-
redis:
5-
image: redis:alpine
6-
ports:
7-
- "6379:6379"
8-
networks:
9-
- mploy-network
10-
11-
backend:
12-
build:
13-
context: ./backend
14-
dockerfile: Dockerfile.dev
15-
ports:
16-
- "8080:8080"
17-
environment:
18-
- REDIS_HOST=redis
19-
- REDIS_PORT=6379
20-
networks:
21-
- mploy-network
22-
depends_on:
23-
- redis
24-
25-
frontend:
26-
build:
27-
context: ./frontend
28-
dockerfile: Dockerfile.dev
29-
ports:
30-
- "3000:3000"
31-
volumes:
32-
- ./frontend:/app
33-
- /app/node_modules
34-
environment:
35-
- NEXT_PUBLIC_API_URL=http://localhost:8080
36-
networks:
37-
- mploy-network
38-
39-
networks:
40-
mploy-network:
41-
driver: bridge
1+
services:
2+
# redis:
3+
# image: redis:alpine
4+
# ports:
5+
# - "6379:6379"
6+
# networks:
7+
# - mploy-network
8+
9+
# backend:
10+
# build:
11+
# context: ./backend
12+
# dockerfile: Dockerfile.dev
13+
# develop:
14+
# watch:
15+
# - action: rebuild
16+
# path: ./backend/src # Watch the entire src directory
17+
# volumes:
18+
# - ./backend:/app
19+
# ports:
20+
# - "35729:35729"
21+
# - "8080:8080"
22+
# environment:
23+
# - SPRING_PROFILES_ACTIVE=dev
24+
# - SPRING_DEVTOOLS_RESTART_ENABLED=true
25+
# - REDIS_HOST=redis
26+
# - REDIS_PORT=6379
27+
# networks:
28+
# - mploy-network
29+
# depends_on:
30+
# - redis
31+
32+
frontend:
33+
build:
34+
context: ./frontend
35+
dockerfile: Dockerfile.dev
36+
ports:
37+
- "3000:3000"
38+
volumes:
39+
- ./frontend:/app
40+
- /app/node_modules
41+
environment:
42+
- NEXT_PUBLIC_API_URL=http://localhost:8080
43+
networks:
44+
- mploy-network
45+
46+
networks:
47+
mploy-network:
48+
driver: bridge

frontend/.env

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)