Skip to content

OpenGenus/cosmos-search

Repository files navigation

cosmos-search

Cosmos Search

This is the real-time code search engine for all. We aim to revolutionize the way people interact and search for code. This is evident in our on-going work. Cosmos Search is privacy-focussed as we do not store any data.

Some of our core beliefs that drive the development of this search engine:

  • Searching is more of a social act.
  • The Divide between programming languages and native languages must be minimized.
  • Time spend on searching must be minimized.
  • Time spend on learning, discussing and socializing must be maximized.

Link: search.opengenus.org

Cosmos Search is one of the most impactful sister projects of Cosmos powered by OpenGenus Foundation.

This is the official search tool for cosmos, a library of every algorithm and data structure code that you will ever encounter.

Build Status License: GPL v3

Maintainers

This is a very ambitious project based on a massive collaboration and to keep the quality intact and drive the vision in the proper direction, we have maintainers.

Maintainers are your friends forever. They are vastly different from moderators.

Currently, we have 3 active maintainers and we are expanding quickly.

The task of maintainers is to review pull requests, suggest further quality additions and keep the work up to date with the current state of the world. 🌍

Let us know if you would like to be a maintainer and we will review and add you upon subsequent contributions. To join our massive community at Slack open an issue here.

Contributors

The success of our vision depends on you. Even a small contribution helps. All forms of contributions are highly welcomed and valued.

When you contribute, your name with a link (if available) is added to our contributors list.

You can contribute by writing code, documentation, making Cosmos search friendly and many others. There are endless possibilities.

You might, also, like to take a look at our Ideas List. You can take up a task from the list or suggest your own. Open a pull request to indicate the work you are doing.

Feel free to discuss anything with us. 💭

Contributing to the Human-Curated Lists

One can contribute to the lists by uploading their files to the repository human_curated_lists which supports only .md file(s) for now.

After uploading the file(s) update the lists.json file with necessary details about the list such as List Title, List Description, Author Name, etc.

After this a Pull Request can be generated and the lists will be reviewed and merged.

Technologies Used

This project uses a number of open source projects:

  • Django - Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
  • Bootstrap - Responsive frontend framework
  • Heroku - Webapp deployed here
  • Travis - Continuous Integration of the project

Run this search engine locally

  1. Clone this repository using

    $ git clone https://github.com/OpenGenus/cosmos-search.git
    
  2. Go inside main Django app

    $ cd cosmos-search
    
  3. Setup a virtual environment

    $ virtualenv -m python3 env_name OR $ python3 -m venv env_name

    (For Conda users)

    $ conda create -n env_name python=3.6 anaconda

  4. Activate the virtual environment

    $ source env_name/bin/activate
    

    The virtual environment can be deactivated with the deactivate command.

    (For Conda users)

    $ source activate env_name

    The virtual environment can be deactivated with the source deactivate command.

  5. Install local dependencies

    Conda users need to install pip locally in their virtual environment using $ conda install pip

     pip install -r requirements.txt
    
  6. Create a project in the Google Developers Console and obtain authorization credentials and API Key for YouTube Data API v3.

  7. Insert the obtained Key in parameter DEVELOPER_KEY in .env.example file

  8. Copy the .env.example file to .env and supply values for the required variables.

  9. Collectstatic files using

    $ python manage.py collectstatic
    
  10. Migrating files using

    $ python manage.py migrate
    
  11. Create Cache Table

    $ python manage.py createcachetable
    
  12. Run the app

    $ python manage.py runserver
    
  13. View the locally built site

    localhost:8000
    

To run the web app in Debug mode set the DEBUG environment variable. In Linux, run the export DEBUG=True command in the terminal.

License

We believe in freedom and improvement. Cosmos Search is built with ♥ by OpenGenus Community under GPL v3