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.
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
-
Clone this repository using
$ git clone https://github.com/OpenGenus/cosmos-search.git
-
Go inside main Django app
$ cd cosmos-search
-
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
-
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. -
Install local dependencies
Conda users need to install pip locally in their virtual environment using
$ conda install pip
pip install -r requirements.txt
-
Create a project in the Google Developers Console and obtain authorization credentials and API Key for YouTube Data API v3.
-
Insert the obtained Key in parameter
DEVELOPER_KEY
in .env.example file -
Copy the .env.example file to .env and supply values for the required variables.
-
Collectstatic files using
$ python manage.py collectstatic
-
Migrating files using
$ python manage.py migrate
-
Create Cache Table
$ python manage.py createcachetable
-
Run the app
$ python manage.py runserver
-
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