Skip to content

ghoshnirmalya/linkedin-clone-rails-backend

Repository files navigation

API to power a software similar to LinkedIn

Build Status Maintainability

A clone of LinkedIn software with basic functionalities.

Logo

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

API documentation

The API documentation is available here.

Prerequisites

What things you need to install the software and how to install them:

Installing

1. Clone the repository

git clone git@github.com:ghoshnirmalya/linkedin-rails.git && cd linked-rails

2. Build the project

docker-compose build

3. Create the database

docker-compose run linkedin.rails.web rake db:create

4. Copy the env files

cp .env.development.example .env.development && cp .env.test.example .env.test

5. Run the migrations

docker-compose run linkedin.rails.web rake db:migrate

Please have a look at Quickstart: Compose and Rails if you run into any trouble while installing.

Running the tests

You can run all the specs using the following command:

docker exec -it linkedin-rails_linkedin.rails.web_1 rspec .

If you want to run a single spec, use the following pattern:

docker exec -it linkedin-rails_linkedin.rails.web_1 rspec spec/controllers/v1/users_controller_spec.rb

You'll have to update the .env files to make all the specs pass.

Checking the logs

You can check the development logs using the following command:

docker exec -it linkedin-rails_linkedin.rails.web_1 tail -f log/development.log

If you want to check the test logs, you'll need to use the following command:

docker exec -it linkedin-rails_linkedin.rails.web_1 tail -f log/test.log

Built With

Contributing

If you find any bugs, please feel free to create an issue for that.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgments

Todo

  • Authentication
  • Make APIs follow JSON-API specification
  • Users Listing API
    • Search (for Users)
  • Companies Listing API
    • Search (for Companies)
  • Jobs Listing API
    • Search (for Jobs)
  • Conversations Listing API
    • Messages belonging to a conversation Listing API
  • Send an email after a new user signs up
  • Send an email after an existing user requests for a new password