Giter Site home page Giter Site logo

strickinato / website Goto Github PK

View Code? Open in Web Editor NEW

This project forked from exercism/v2-website

0.0 2.0 0.0 5.89 MB

Exercism—Code practice and mentorship for everyone.

Home Page: https://exercism.io

License: GNU Affero General Public License v3.0

Ruby 60.65% JavaScript 0.54% CoffeeScript 0.49% CSS 20.56% HTML 17.76%

website's Introduction

Exercism website

Build Status Maintainability Test Coverage

Development setup

This is a Ruby on Rails (5.2) application backed by MySQL. There are two ways to run it locally:

  1. Setup a local development environment with the steps below.
  2. Use a pre-made Docker setup. We don't maintain an official Docker repo, but you can try this version kindly maintained by @unused.

Things to install

  • Ruby: We recommend Ruby >=2.4 (and this will soon become a requirement). We recommend using RVM
  • MySQL: Install via your system's package manager or follow the official Installation instructions
  • Yarn: Yarn handles front-end dependencies. See Yarn's installation instructions.

Configure the database

Something like this will then get a working database setup:

mysql -e "CREATE USER 'exercism_reboot'@'localhost' IDENTIFIED BY 'exercism_reboot'" -u root -p
mysql -e "create database exercism_reboot_development" -u root -p
mysql -e "create database exercism_reboot_test" -u root -p
mysql -e "ALTER DATABASE exercism_reboot_development CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" -u root -p
mysql -e "ALTER DATABASE exercism_reboot_test CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" -u root -p
mysql -e "GRANT ALL PRIVILEGES ON exercism_reboot_development.* TO 'exercism_reboot'@'localhost'" -u root -p
mysql -e "GRANT ALL PRIVILEGES ON exercism_reboot_test.* TO 'exercism_reboot'@'localhost'" -u root -p

Install Bundler

Bundle is used to handle the project's Ruby dependancies. You can install it via

gem install bundler

Initial setup

Firstly, you need to set a server identity, which you can do like this:

echo "host" > server_identity

Then we've put a rake task together that should set everything else up. You can run it like this:

bundle install
bundle exec rake exercism:setup

Running a webserver

To run a webserver, simple run:

bundle exec rails s

Something like this will get a working webserver on http://lvh.me:3000 Note: Teams will be avaliable on http://teams.lvh.me:3000

Notes

We recommend using lvh.me which is a DNS redirect to localhost, but which we honour cookies on.

Extra scripts and useful notes

Deleting an account

To delete a user, run user.destroy.

The user record is deleted, as well as associated objects except the ff:

  • Discussion posts where they are a mentor.
  • Maintainer records where their user record is associated.

Unlock first exercise for each user track

For when @iHiD breaks things.

user_track_ids.each do |id|
  ut = UserTrack.find(id)
  CreateSolution.(ut.user, ut.track.exercises.core.first) if ut.solutions.size == 0
end

website's People

Contributors

ihid avatar kntsoriano avatar ccare avatar unused avatar jackhughesweb avatar tejasbubane avatar pacmancoder avatar patrickmcsweeny avatar tushartyagi avatar aldraco avatar ruralocity avatar nottheeconomist avatar amaliacardenas avatar cmondorf avatar insideoutclub avatar dougal avatar erikschierboom avatar corroded avatar jmhain avatar loriking avatar average-user avatar nickborromeo avatar budmc29 avatar leneko avatar yilkalargaw avatar

Watchers

James Cloos avatar Aaron Strick avatar

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.