CareerCrafterPro is a web application that allows users to create, customize, and download resumes using a variety of predefined themes. This project is built with Ruby on Rails and utilizes several features including Active Storage Mailers Action Text.
brew install gpg
in your local terminal.gpg --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -sSL https://rvm.io/mpapis.asc | gpg --import -
curl -sSL https://rvm.io/pkuczynski.asc | gpg --import -
\curl -sSL https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
rvm install "ruby-3.0.0"
. Run the command rvm use 3.0.0 --default
to use 3.0.0 as the default Ruby version.rvm list
will show all installed Ruby versions, and running ruby -v
should output 3.0.0 as the Ruby version you are currently using.In the directory in WSL that ruby was installed
gem install rails -v 7.1.2
rails -v
. It should output version 7.1.2.4) sudo apt update 5) sudo apt install postgresql postgresql-contrib 6) sudo service postgresql status 7) sudo systemctl enable postgresql 8) sudo systemctl start postgresql
brew install postgresql
psql postgres
. To quit, run \q
into the shell.CREATE ROLE myappuserName WITH LOGIN PASSWORD 'myapppassword';
to set up a pgsql role with priviledges.bundle install
to install the project dependencies.application.yml
file in the config
directory to store database login credentials(Use the .env.example
file as a reference to set up necessary environment variables for your development environment.)application.yml
file in the config
directory.
POSTGRES_USER: myappuserName
POSTGRES_PASSWORD: myapppassword
bundle install
to download project dependencies.rake db:setup
to create and seed the database.rake db:migrate
to apply database migrations.rails s
to start the Rails server.ADMIN_EMAIL
in your application.yml
as an environment variable.ADMIN_EMAIL
address.rake admin:upgrade_to_admin
in the console to grant admin privileges to the account. This account can now access the admin dashboard.bundle exec rspec
.COVERAGE=true bundle exec rspec
.open coverage/index.html
from the root directory.Details about job queues, cache servers, search engines, and other services will be provided here.
Active Storage facilitates rich text data management, enhancing user experiences with features like emojis and custom fonts in posts or comments. Data is saved as HTML in the action_text_rich_texts
table.
The Bullet gem helps to identify N+1 queries and other common performance issues during development:
Bullet.alert = false
in development.rb
.Bullet.enable = false
.If you are deploying this project:
master.key
(this is not version controlled).credentials.yml.enc
file checked into version control.To add new templates and themes:
free
or premium
) followed by the design name.app/views/themes
directory named [my_pdf_design_name].pdf.haml
.app/assets/stylesheets/themes/[my_pdf_design_name.css]
.config/initializers/assets.rb
to ensure it loads correctly with Wicked PDF..pdf.haml
file via admin dashboard or rake task in create_theme_names.rake
.The application uses ActiveRecord's session store to manage user sessions. Each session is stored in the sessions
table in the database. This table helps in tracking user sessions, maintaining login states, and providing necessary security features like CSRF protection.
Due to the current limitations (absence of Redis or queuing services), the cleanup of old sessions is performed manually using a rake task. This manual cleanup is essential to ensure that the sessions
table does not grow indefinitely, which could impact the performance of the application.
To manually clean up old sessions, you can run the following rake task:
rake session:cleanup
For any questions or contributions, please open an issue or submit a pull request.