Giter VIP home page Giter VIP logo

skill-deploy's Introduction

README

This README would normally document whatever steps are necessary to get the application up and running.

Things you may want to cover:

  • Ruby version

  • System dependencies

  • Configuration

  • Database creation

  • Database initialization

  • How to run the test suite

  • Services (job queues, cache servers, search engines, etc.)

  • Deployment instructions

  • ...

File Formatting

If you want to use auto-formatting before committing files on your local machine you should run cp .lintstagedrc.sample .lintstagedrc && cp .huskyrc.sample .huskyrc

Email

The application uses the mailcatcher gem in development.

gem install mailcatcher
mailcatcher

Mailcatcher will run as a background daemon on port 1025 and a web interface will be made available at http://localhost:1080 where you can review the emails sent from your development machine.

skill-deploy's People

Contributors

trueinviso avatar arthur-nesterenko avatar jerry612 avatar lkibbalam avatar pavelshatuho avatar eastwoj avatar polyglot-me avatar dreamsoftech avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

skill-deploy's Issues

Authorizations for admin

Add policies and scopes for all admin actions

Profile tab:

  • Only user that profile belongs to should be able to update it
  • Only user that profile belongs to should be able to view edit page for it.
  • Only user that profile belongs to should be able to update it. (including thumbnail update)

Saved projects tab:

  • Only users own favorited projects should be listed on this tab
  • A user should not be able to favorite a job for someone else.

Account settings tab:

  • A user can only update their own email and password

Manage listings tab:

  • Only listings a user created will show up on this tab.
  • Only users with an employee role can view this tab

Notifications tab:

  • A user can only update notification settings for themself.

Billing details:

  • A user can only edit their own payment method.
  • A user can only cancel their own subscription.
  • The user can only view their own billing details.

This is a list of all the ones I could think of, any other edge cases I may have missed.

Pending approval

A job seeker will need to be approved before having access to the site.

The user will need a status on the model indicating if they are pending approval or not.

They will need the "Job Seeker" role.

They will need to be redirected to the "Pending approval" page if they are not approved yet.

There will need to be a pending approval route.

There will need to be a pending approval view and controller.

Community plugin

We need to implement a third party community plugin and connect it to the "Community" link in the Nav.

The jobs are not loading

The jobs are not loading on the Job board page.

This is probably related to the other JS issues. This is the error on the job page:

image

Fix job thumbnail uploader

When I try to upload a thumbnail on the create job page:

/employer/jobs/new

I get this error in the server logs:

web_1  | NoMethodError (undefined method `to_sym' for nil:NilClass):
web_1  |
web_1  | app/services/thumbnail_updater.rb:41:in `model_type'
web_1  | app/services/thumbnail_updater.rb:14:in `update_thumbnail'
web_1  | app/services/thumbnail_updater.rb:10:in `call!'
web_1  | app/controllers/api/v1/thumbnails_controller.rb:7:in `update'

Connect create job

The create job page is styled but all params need to be allowed for the create action in the controller. Add these params and verify that it creates the new job correctly.

The side nav links need to update the color based on current page

image

As can be seen in the above image, the color of the side nav link needs to update to the proper color for "Your profile" since that is the page I am on. This also needs to happen for the rest of the links.

It looks like this is a turbo links issue, because the links have the correct color if you refresh the page.

Create listing authorizations

Add policies and scopes for CRUD actions for listings.

Rules:

  • A user can only update a listing that belongs to them
  • A user can only delete a listing that belongs to them.
  • Job listings on the "Manage listings" tab should be scoped by current user
  • Only users with a role of "employer" can Create/Update/Delete listings
  • Listing preview pages should only be accessible to the employer user that created it.

Any other edge cases I may have missed.

Implement save for later

We need to remove the "Save for later" button from the create listing page.

We need to add a status enum to the Job model.

When "Preview listing" is clicked on the create listing page, it should create a new job in the database with a status of preview. Create listing should already work.

After the job is saved it should redirect to the preview page for that job:

employer/preview/job/:job_id

We also need some sort of identifier on the job cards on the "Manage listings" tab of the admin dashboard. There also needs to be some sort of indicator that a job is in preview status, or published status.

image

Fix image uploader on create listing page

The image uploader on the job page needs to display a cached version of the image on the page instead of making a request to the thumbnail endpoint.

Then when the job is saved, it should save the image with it.

Style billing details page

image

Style the billing details page according to the designs.

Desktop:

https://app.zeplin.io/project/5c5b1d4ccf0813020c160b10/screen/5c5b23bf7e7c4b6c349ebd4a

Mobile:

https://app.zeplin.io/project/5c5b1d4ccf0813020c160b10/screen/5c5b23bebbafef352f2021fb

This is ready, but there is nothing in the design regarding cancel, expiration date, or when a subscription is in the pending cancellation state. Just add those parts in a way that makes sense according to the design.

The update payment method button should reveal the update card form. There is a javascript toggle() method for this instantiated. If you'd like to do it a different way, that is up to you.

Work experiences bug

I am able to add users work experiences:

image

However, on the edit profile page, these user experiences don't show up, it still shows as empty:

image

Test suite

The test suite is almost non-existent. Need to go through and write specs.

Would also be good to set up some CI

Add correct links to Nav

Desktop Nav should look like this:

image

Mobile nav should have same links as Desktop

We need to add a "Sign out" link to the nav.

I would like the "Sign out" on the desktop nav to be in a bubble drop down when you hover over the image on the page. Maybe something like this:

image

But it will only have "Sign out" in it.

Hook up favorite job button for job board

image

The little icon on the right of each job card on the job board page needs to be hooked up to the api endpoint. When clicked it should add the job to their favorites and change icon to a filled color.

Fix "Website" button href

The href for the website button on the live listing show page, doesn't have http on it so it tries to open the link using the skill deploy domain:

image

Maybe we solve this with validations?

Wire up post listing functionality

When the preview page for a non-live / saved listings is visited, there is a button to "post" the listing:

image

When this button is pressed the job should be moved into a "published" state. It should redirect to the "Manage listings" tab of the employer dashboard. It should display a success flash message like the one below:

image

https://app.zeplin.io/project/5c5b1d4ccf0813020c160b10/screen/5c5b2001b02672356b4ed105

https://app.zeplin.io/project/5c5b1d4ccf0813020c160b10/screen/5c5b20004e18973559529575

Employer job controller policies

Add pundit policies for the employer jobs controller action.

Only users with a role of "Employer" and who have an active paid subscription should be able to access those controller actions.

If their subscription is past due they should be redirected to the edit billing page.

If they don't have a subscription or it is cancelled, they should be redirected to the new subscription page.

If they have the "Job seeker" role they should be redirected to the new subscription sign up page.

PR #50

Account settings page

https://app.zeplin.io/project/5c5b1d4ccf0813020c160b10/screen/5c5b23bf87eef642afb22ec0

This page needs to be built, this is the backend ticket.

We have to two pages that update a profile, from the perspective of Devise, we don't require password for updating fields on the "Your profile" tab. This will probably require some sort of override in Devise.

Add a view for this page with the form elements (no need to style, there is a separate ticket for that).

Make "Account settings" link in side nav functional to this new view.

Add success flash message on subscription create

image

https://app.zeplin.io/project/5c5b1d4ccf0813020c160b10/screen/5c5b1ffdc48ceb5a290a6877

The above flash message has been added and will show up on the new listing page when you sign up for a new subscription.

The flash message needs to be designed according to the designs above. I am not exactly sure how we are going to add that link onto the flash message itself yet. If you can at least style what is there that would be great.

This flash message styling will be used throughout the application. You can find the code for flash messages in:

app/views/application/_flash_messages.html.haml

Style images

The image uploader works now, so the images need to be sized and formatted properly.

PR #48

Submit profile pending page

When a new job seeker signs up, they should be put into a pending status until they are approved by an admin.

We need to add an enum field to the user model called review_status with possible values of [:pending, :complete].

We then need to prevent job seekers from viewing any pages until they have a review_status of complete.

#51

Remote status of job doesn't save

When I create a job at the following url /employer/jobs/new, and select an option for the remote status of a job:

image

It doesn't seem to save the selection to the record. When I visit the edit page for this job next, it doesn't fill in my choice on that page.

Add job validations

Add url validations to the job model like we have on the social media profile:

image

It should be as simple as adding the same code above for the job model ☝️

Maybe add some sort of location validation for the location field.

In case you were wondering, url is a custom validator inside app/validators/url_validator.rb.

Authorizations for create profile

Add polices and scopes for create profile

  • Only users without a profile should be able to visit the new profile page
  • Only users without a profile should be able to create a profile
  • A user should only be able to create a profile for their own account

Pending approval page:

  • The nav men should be blank

Add Sentry

We need to add Sentry to the app to catch all errors at least for now.

New Subscription Signup Page

Mobile design:

https://app.zeplin.io/project/5c5b1d4ccf0813020c160b10/screen/5c5b2000df967742a322d24a

Desktop design:

https://app.zeplin.io/project/5c5b1d4ccf0813020c160b10/screen/5c5b2001a0d05c42545f1990

The template for this page is located at /app/views/unity/subscriptions/new.html.haml
The dropin form partial is located at /app/views/unity/payment_method/_card_details.html.haml

To get to this page, sign up as a new user, then click "Get Started" under "Hire Creatives":

image

This will direct you to the new subscription sign up page at /subscription/new. Do not change the id of the new subscription form from braintree-payment-form, otherwise the drop in will not work.

There is a hidden field with a name of plan_id that will contain the plans gateway id.

We are using the Stripe dropin for the payment form. Try not to change the javascript for the Stripe dropin form, but if you absolutely need to alter the JS to style it properly you can ask me how to do that and I will show you.

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.