Skip to content

Module 2 tasks #10

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 27 commits into
base: job-posting-and-job-application-flow
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
1570995
feat: job post dashboard pagination
hussain-cdm Apr 22, 2025
ff2138f
feat: schedule interview pop-up for employer
hussain-cdm Apr 23, 2025
521e6f6
feat: comments for job application
hussain-cdm Apr 23, 2025
72a00b9
feat: sidebar application categories
hussain-cdm Apr 23, 2025
c318536
feat: bulk status update
hussain-cdm Apr 23, 2025
dbc8b71
feat: hire confirmation pop-up for application
hussain-cdm Apr 25, 2025
4973dcc
feat: google calendar integration
hussain-cdm Apr 27, 2025
902c940
feat: Implemeted AI based Resume match score
hussain-cdm Apr 29, 2025
47cbd18
feat: Restrict applications for closed jobs
hussain-cdm Apr 29, 2025
f5beec4
fix: fixed the test cases
hussain-cdm Apr 29, 2025
373709c
fix: update the filter status count in real time on bulk update
hussain-cdm Apr 30, 2025
e6fac19
feat: adding organization name in profile dropdown
hussain-cdm Apr 30, 2025
707409b
refactor: refactored the bulk actions
hussain-cdm Apr 30, 2025
0321a84
fix: fixed the AI job analyzer
hussain-cdm Apr 30, 2025
dad3f52
fix: disabled actions on updating to hire or reject
hussain-cdm May 2, 2025
d9157ba
feat: Use FriendlyId in JobPosts to avoid using IDs in URLs
hussain-cdm May 5, 2025
5dcce10
feat: adding error page to handle active record not found
hussain-cdm May 5, 2025
37d719b
refactor: refactored the comment flow
hussain-cdm May 5, 2025
e4e1155
fix: fixed lint issues
hussain-cdm May 6, 2025
2bfb367
chore: moved the job match analyser to background job
hussain-cdm May 7, 2025
5aa851b
feat: customise page limit for job post pagination
hussain-cdm May 7, 2025
c7f6504
refactor: updated the interview flow with turbo frame instead using js
hussain-cdm May 7, 2025
3f17e40
refactor: refactored the comment flow from js code to hotwire turbo
hussain-cdm May 8, 2025
e43f1d5
refactor: refactored the filter count to use hotwire turbo from js
hussain-cdm May 8, 2025
b3d452d
chore: added test cases for pagination selector
hussain-cdm May 8, 2025
605639c
updated changes
hussain-cdm May 8, 2025
ad99aa1
fixed comment spec
hussain-cdm May 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .rspec
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
--require spec_helper
12 changes: 12 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,14 @@ gem "thruster", require: false
# gem "image_processing", "~> 1.2"

gem "ransack"
gem "pagy", "~> 9.3"
gem "inline_svg"
gem "google-api-client", "~> 0.53.0"
gem "googleauth", "~> 1.1.0"
gem "dotenv-rails"
gem "ruby-openai"
gem "pdf-reader", "~> 2.11"
gem "friendly_id", "~> 5.5.0"

group :development, :test do
# See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem
Expand All @@ -64,4 +72,8 @@ group :test do
# Use system testing [https://guides.rubyonrails.org/testing.html#system-testing]
gem "capybara"
gem "selenium-webdriver"
gem "rspec-rails"
gem "factory_bot_rails"
gem "faker"
gem "shoulda-matchers"
end
126 changes: 125 additions & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
GEM
remote: https://rubygems.org/
specs:
Ascii85 (2.0.1)
actioncable (8.0.2)
actionpack (= 8.0.2)
activesupport (= 8.0.2)
Expand Down Expand Up @@ -74,6 +75,7 @@ GEM
uri (>= 0.13.1)
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
afm (0.2.2)
ast (2.4.3)
base64 (0.2.0)
bcrypt (3.1.20)
Expand Down Expand Up @@ -104,23 +106,79 @@ GEM
debug (1.10.0)
irb (~> 1.10)
reline (>= 0.3.8)
dotenv (3.1.7)
declarative (0.0.20)
diff-lcs (1.6.1)
dotenv (3.1.8)
dotenv-rails (3.1.8)
dotenv (= 3.1.8)
railties (>= 6.1)
drb (2.2.1)
ed25519 (1.3.0)
erubi (1.13.1)
et-orbi (1.2.11)
tzinfo
event_stream_parser (1.0.0)
factory_bot (6.5.1)
activesupport (>= 6.1.0)
factory_bot_rails (6.4.4)
factory_bot (~> 6.5)
railties (>= 5.0.0)
faker (3.5.1)
i18n (>= 1.8.11, < 2)
faraday (2.13.1)
faraday-net_http (>= 2.0, < 3.5)
json
logger
faraday-multipart (1.1.0)
multipart-post (~> 2.0)
faraday-net_http (3.4.0)
net-http (>= 0.5.0)
friendly_id (5.5.1)
activerecord (>= 4.0.0)
fugit (1.11.1)
et-orbi (~> 1, >= 1.2.11)
raabro (~> 1.4)
gems (1.3.0)
globalid (1.2.1)
activesupport (>= 6.1)
google-api-client (0.53.0)
google-apis-core (~> 0.1)
google-apis-generator (~> 0.1)
google-apis-core (0.11.3)
addressable (~> 2.5, >= 2.5.1)
googleauth (>= 0.16.2, < 2.a)
httpclient (>= 2.8.1, < 3.a)
mini_mime (~> 1.0)
representable (~> 3.0)
retriable (>= 2.0, < 4.a)
rexml
google-apis-discovery_v1 (0.14.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-generator (0.12.0)
activesupport (>= 5.0)
gems (~> 1.2)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-discovery_v1 (~> 0.5)
thor (>= 0.20, < 2.a)
googleauth (1.1.3)
faraday (>= 0.17.3, < 3.a)
jwt (>= 1.4, < 3.0)
memoist (~> 0.16)
multi_json (~> 1.11)
os (>= 0.9, < 2.0)
signet (>= 0.16, < 2.a)
hashery (2.1.2)
httpclient (2.9.0)
mutex_m
i18n (1.14.7)
concurrent-ruby (~> 1.0)
importmap-rails (2.1.0)
actionpack (>= 6.0.0)
activesupport (>= 6.0.0)
railties (>= 6.0.0)
inline_svg (1.10.0)
activesupport (>= 3.0)
nokogiri (>= 1.6)
io-console (0.8.0)
irb (1.15.1)
pp (>= 0.6.0)
Expand All @@ -130,6 +188,8 @@ GEM
actionview (>= 5.0.0)
activesupport (>= 5.0.0)
json (2.10.2)
jwt (2.10.1)
base64
kamal (2.5.3)
activesupport (>= 7.0)
base64 (~> 0.2)
Expand All @@ -154,9 +214,15 @@ GEM
net-smtp
marcel (1.0.4)
matrix (0.4.2)
memoist (0.16.2)
mini_mime (1.1.5)
minitest (5.25.5)
msgpack (1.8.0)
multi_json (1.15.0)
multipart-post (2.4.1)
mutex_m (0.3.0)
net-http (0.6.0)
uri
net-imap (0.5.6)
date
net-protocol
Expand Down Expand Up @@ -188,11 +254,19 @@ GEM
racc (~> 1.4)
nokogiri (1.18.7-x86_64-linux-musl)
racc (~> 1.4)
os (1.1.4)
ostruct (0.6.1)
pagy (9.3.4)
parallel (1.26.3)
parser (3.3.7.4)
ast (~> 2.4.1)
racc
pdf-reader (2.14.1)
Ascii85 (>= 1.0, < 3.0, != 2.0.0)
afm (~> 0.2.1)
hashery (~> 2.0)
ruby-rc4
ttfunk
pg (1.5.9)
pp (0.6.2)
prettyprint
Expand Down Expand Up @@ -259,7 +333,29 @@ GEM
regexp_parser (2.10.0)
reline (0.6.0)
io-console (~> 0.5)
representable (3.2.0)
declarative (< 0.1.0)
trailblazer-option (>= 0.1.1, < 0.2.0)
uber (< 0.2.0)
retriable (3.1.2)
rexml (3.4.1)
rspec-core (3.13.3)
rspec-support (~> 3.13.0)
rspec-expectations (3.13.3)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-mocks (3.13.2)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-rails (7.1.1)
actionpack (>= 7.0)
activesupport (>= 7.0)
railties (>= 7.0)
rspec-core (~> 3.13)
rspec-expectations (~> 3.13)
rspec-mocks (~> 3.13)
rspec-support (~> 3.13)
rspec-support (3.13.2)
rubocop (1.75.1)
json (~> 2.3)
language_server-protocol (~> 3.17.0.2)
Expand Down Expand Up @@ -288,7 +384,12 @@ GEM
rubocop (>= 1.72)
rubocop-performance (>= 1.24)
rubocop-rails (>= 2.30)
ruby-openai (8.1.0)
event_stream_parser (>= 0.3.0, < 2.0.0)
faraday (>= 1)
faraday-multipart (>= 1)
ruby-progressbar (1.13.0)
ruby-rc4 (0.1.5)
rubyzip (2.4.1)
securerandom (0.4.1)
selenium-webdriver (4.30.1)
Expand All @@ -297,6 +398,13 @@ GEM
rexml (~> 3.2, >= 3.2.5)
rubyzip (>= 1.2.2, < 3.0)
websocket (~> 1.0)
shoulda-matchers (6.4.0)
activesupport (>= 5.2.0)
signet (0.19.0)
addressable (~> 2.8)
faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 3.0)
multi_json (~> 1.10)
solid_cable (3.0.7)
actioncable (>= 7.2)
activejob (>= 7.2)
Expand Down Expand Up @@ -340,11 +448,15 @@ GEM
thruster (0.1.12-x86_64-darwin)
thruster (0.1.12-x86_64-linux)
timeout (0.4.3)
trailblazer-option (0.1.2)
ttfunk (1.8.0)
bigdecimal (~> 3.1)
turbo-rails (2.0.13)
actionpack (>= 7.1.0)
railties (>= 7.1.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
uber (0.1.0)
unicode-display_width (3.1.4)
unicode-emoji (~> 4.0, >= 4.0.4)
unicode-emoji (4.0.4)
Expand Down Expand Up @@ -382,16 +494,28 @@ DEPENDENCIES
brakeman
capybara
debug
dotenv-rails
factory_bot_rails
faker
friendly_id (~> 5.5.0)
google-api-client (~> 0.53.0)
googleauth (~> 1.1.0)
importmap-rails
inline_svg
jbuilder
kamal
pagy (~> 9.3)
pdf-reader (~> 2.11)
pg (~> 1.1)
propshaft
puma (>= 5.0)
rails (~> 8.0.2)
ransack
rspec-rails
rubocop-rails-omakase
ruby-openai
selenium-webdriver
shoulda-matchers
solid_cable
solid_cache
solid_queue
Expand Down
1 change: 1 addition & 0 deletions Procfile.dev
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
web: bin/rails server
css: bin/rails tailwindcss:watch
jobs: bin/jobs
3 changes: 3 additions & 0 deletions app/assets/images/calendar_icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions app/assets/images/check_circle.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 7 additions & 0 deletions app/assets/images/delete_icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions app/assets/images/edit_icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions app/assets/images/hire_icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions app/assets/images/link_icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions app/assets/images/pending_icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions app/assets/images/reject_icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions app/assets/images/time_icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions app/assets/images/user_icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions app/assets/images/users_icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 11 additions & 6 deletions app/assets/stylesheets/application.css
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,13 @@
* Consider organizing styles into separate files for maintainability.
*/

.field_with_errors {
display: contents;
}
.field_with_errors {
display: contents;
}

/* Prevent scrolling while dialog is open */
body:has(dialog[data-dialog-target="dialog"][open]) {
body:has(dialog[data-dialog-target="dialog"][open]),
body:has(dialog[data-interview-schedule-target="modal"][open]) {
overflow: hidden;
}

Expand All @@ -32,6 +33,7 @@ dialog {
0% {
opacity: 0;
}

100% {
opacity: 1;
}
Expand All @@ -41,16 +43,19 @@ dialog {
0% {
opacity: 1;
}

100% {
opacity: 0;
}
}

/* Add animations */
dialog[data-dialog-target="dialog"][open] {
dialog[data-dialog-target="dialog"][open],
dialog[data-interview-schedule-target="modal"][open] {
animation: fade-in 200ms forwards;
}

dialog[data-dialog-target="dialog"][closing] {
dialog[data-dialog-target="dialog"][closing],
dialog[data-interview-schedule-target="modal"][closing] {
animation: fade-out 200ms forwards;
}
Loading