https://github.com/Metaculus/metaculus Skip to content Navigation Menu Toggle navigation Sign in * Product + Actions Automate any workflow + Security Find and fix vulnerabilities + Codespaces Instant dev environments + GitHub Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions By size + Enterprise + Teams + Startups By industry + Healthcare + Financial services + Manufacturing By use case + CI/CD & Automation + DevOps + DevSecOps * Resources Topics + AI + DevOps + Security + Software Development + View all Explore + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Enterprise + Enterprise platform AI-powered developer platform Available add-ons + Advanced Security Enterprise-grade security features + GitHub Copilot Enterprise-grade AI features + Premium Support Enterprise-grade 24/7 support * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up Reseting focus You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} Metaculus / metaculus Public * Notifications You must be signed in to change notification settings * Fork 3 * Star 24 License BSD-2-Clause license 24 stars 3 forks Branches Tags Activity Star Notifications You must be signed in to change notification settings * Code * Issues 127 * Pull requests 6 * Discussions * Actions * Projects 0 * Security * Insights Additional navigation options * Code * Issues * Pull requests * Discussions * Actions * Projects * Security * Insights Metaculus/metaculus This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main BranchesTags Go to file Code Folders and files Name Name Last commit Last commit message date Latest commit History 3,278 Commits .github .github authentication authentication comments comments fab_credits fab_credits fab_management fab_management front_end front_end metaculus_web metaculus_web migrator migrator misc misc notifications notifications posts posts projects projects questions questions scoring scoring screenshot screenshot scripts scripts templates/emails templates/emails tests tests users users utils utils .env.example.sh .env.example.sh .flake8 .flake8 .gitignore .gitignore .python-version .python-version Dockerfile Dockerfile LICENSE LICENSE Procfile Procfile README.md README.md deploy.sh deploy.sh docker-compose.yaml docker-compose.yaml heroku.yml heroku.yml init-db.sql init-db.sql manage.py manage.py poetry.lock poetry.lock pyproject.toml pyproject.toml pytest.ini pytest.ini View all files Repository files navigation * README * BSD-2-Clause license Metaculus logo-blue on transparent This is the codebase for the rewritten main Metaculus website, it's expected to be live in October. Contributing If you make a meaningful contribution to the Metaculus codebase, e.g. solving an issue we'll gift you a Metaculus hoodie (please email the shipping address to christian@metaculus.com) If you wish to contribute try to set up a local development environment using the instructions below, and create an issue if you are having problems doing so. We curate a list of issues suitable for newcomers, it's a great starting point. Feel free to suggest your own changes and ideas as an issue, we'll discuss it and help you get started on implementing it. Setup dev env. 0. Setup environment * Install Postgres * Install redis * Install poetry and python 3.12 * Install node * Install pgvector database extension 1. Setup Backend poetry install (optional) poetry run python manage.py mjml_compose 2. Setup test database Create a database called metaculus and then load our testing database dump (available as a release artefact) wget https://github.com/Metaculus/metaculus/releases/latest/download/test_metaculus.sql.zip unzip test_metaculus.sql.zip pg_restore -d metaculus test_metaculus.sql and then: poetry run python3 manage.py migrate 3. Setup Frontend cd front_end && npm install cd front_end && npm run dev 4. Cache & Async Tasks python manage.py rundramatiq 5. Run tests @TODO Misc * We use Husky to run linter and typescript checks before committing (see front_end/.husky). * To enable restricted Dev access, you need to add ALPHA_ACCESS_TOKEN= as an env variable for both the BE and the FE (both the FE server & the env where the FE is compiled, which should be the same in most cases) Email We use Django Anymail to integrate various email providers through a single library, simplifying our email management By default, we use the Mailgun provider. Env Configuration: * MAILGUN_API_KEY * EMAIL_HOST_USER How to install PG vectors Ubuntu 1. sudo apt install postgresql-15-pgvector Note: Replace 16 with your Postgres server version 2. Connect to psql and enable extension: CREATE EXTENSION vector; MacOS 1. git clone https://github.com/pgvector/pgvector.git 2. cd pgvector 3. Find out your pg_config path A few common paths on Mac are: + EDB installer: /Library/PostgreSQL/16/bin/pg_config + Homebrew (arm64): /opt/homebrew/opt/postgresql@16/bin/ pg_config + Homebrew (x86-64): /usr/local/opt/postgresql@16/bin/pg_config Note: Replace 16 with your Postgres server version 4. export PG_CONFIG=path/to/pg_config 5. make 6. make install 7. Connect to psql and enable extension: CREATE EXTENSION vector; Other installations and detailed instructions - https://github.com/ pgvector/pgvector Bug Bounty Our bug bounty system classifies vulnerabilities as one of the following: * hard to exploit + i.e. it would take hundreds of hours of expensive compute and luck + e.g. doing a DDOS attack and repeatedly accessing a specific endpoint leads to an error log being returned by the endpoint. In 1/100 cases that log might contain a user password. * easy to exploit + i.e. it can be done reliably and in a short amount of time + e.g. the user admin with password admin can access the admin panel * limited in scope + i.e. it would have only minimal effects on privacy/security + e.g. you can see private first and last name data from all users that have created tournaments * broad in scope + i.e. it would affect most users and leak significant amounts information--or give a lot of control to the attacker. + e.g. you can inspect the HTML of user profile pages and see the user's password in plain text Bounty payouts: * Vulnerabilities that are hard to exploit and limited in scope: $200 * Vulnerabilities that are hard to exploit, but broad in scope--or that are limited in scope, but easy to exploit: $400 * Vulnerabilities that are easy to exploit and broad in scope: $2000 Please email all such vulnerabilities to: engineering@metaculus.com with the subject Security Vulnerability Note: This bug bounty system begins September 10th, 2024. Before that point we will still award $100 for security vulnerabilities, but we expect an internal audit to catch most of these. Note: The first reporter receives the bounty. If multiple reports occur within a few minutes of each other, the prize will be split. Note: Making the exploit public will annul the bounty. About No description, website, or topics provided. Resources Readme License BSD-2-Clause license Activity Custom properties Stars 24 stars Watchers 1 watching Forks 3 forks Report repository Releases 1 v0.0.1-alpha Latest Aug 22, 2024 Packages 0 No packages published Contributors 13 * @George3d6 * @hlibowski * @lsabor * @ncarazon * @casens5 * @elisescu * @aseckin * @hlbmtc * @hickman-santini * @dependabot[bot] * @andy11 * @draaglom * @Aprillion Languages * TypeScript 66.7% * Python 27.4% * HTML 4.9% * JavaScript 0.3% * Shell 0.2% * CSS 0.2% * Other 0.3% Footer (c) 2024 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact * Manage cookies * Do not share my personal information You can't perform that action at this time.