speakerinnen.org is a searchable web directory designed specifically for women conference speakers. Women speakers are encouraged to sign up and provide professional information, including their area of expertise, any previous conferences they've presented at, contact details, etc.
The aim of the app is to provide a way for conference and event organizers to find and contact appropriate women speakers. (But obviously there are many different contexts in which it can be used...)
- Clone the repository:
git clone git@github.com:rubymonsters/speakerinnen_liste.git
and access the folder:cd speakerinnen_liste
. (If you have cloned the repository before and there is still an .env file, delete it.) - Copy the file
database.yml.sample
and name itdatabase.yml
inside the config folder. (The sample-file is a placeholder showing the standard usecase. The filedatabase.yml
is for individual usage and changes and is ignored by git.) - If you don't have Docker Engine installed, please download it here for your operating system.
- Run
make setup
(builds images, installs gems, creates and migrates the database). - Run
make seed
(seeds database with example profiles and indexes them in Elasticsearch).
Local development with Docker (default) -> at the moment this doesn't work on Apple Silicon chips, we are working on a fix.
make dev
(opens a development shell,rake
,bundle
orrails
commands will work here)make up
(starts the app directly)make stop
(stops the container)make test
(runs all the tests)make usage
(get a list of possible commands)
In your database.yml
: make sure host: db
username: postgres
and password: password
are commented out.
You can start a server or run the tests as usual.
If you build or test admin features, you can use the test admin user to test those. The admin user can be found in db/seeds.rb.
Alternatively, assign the admin
status to another user via the rails console:
# Open a dev shell
$ make dev
# Log into the rails console
$ bundle exec rails c
# Inside the rails console
user = Profile.find(<your-profile-id>)
user.admin = true
user.save
# Verify your user admin status
user.valid?
# => true
First, open a dev shell by running make dev
.
# Run all tests of the project (same as running `make test`)
$ bundle exec rspec spec
# If the tests are still failing, run:
$ bundle exec rake db:test:clone
# If tests are still failing, run:
$ rails db:test:prepare
# Run tests excluding elasticsearch specs, so without a running elasticsearch server
$ bundle exec rspec spec --tag '~elasticsearch'
# Open a dev shell
$ make dev
# Run rubocop and correct all errors it finds
$ rubocop -a
Our database schema looks like that:
For seeing our metrics we use the free community edition of honeyycomb ( https://ui.honeycomb.io/login ) More infos how to use this: https://docs.honeycomb.io/beeline/ruby/
We are using honeybadger.
We use Heroku to deploy.
Do you want to contribute?
If you want to contribute, you can get an overview over the open issues on our Project Management Board and via #216.
We are happy to answer your questions if you consider to help. All the issues have a link to their specification. If you want to work on an issue feel free to assign yourself.
Find further details in CONTRIBUTING.md.
#Troubleshooting
If Postgres got upgraded in the docker-compose file, you need to delete all processes, images and volumes that still use the older version:
-
Use
make tear-down
to delete all processes and images -
Delete all your local volumes inside Docker as well. (Otherwise you will get a DB connection error) Check for your speakerinnen volumes in Docker:
docker volume ls
Ouput will be a list of volumes, pick all the speakerinnen ones (Postgres, Bundle) and delete them (adjust the name if yours is different):docker volume rm speakerinnen_liste_postgres_data
docker volume rm speakerinnen_liste_bundle
-
make setup
to recreate all images, processes and volumes. -
make seed
to populate the volumes.
Please note that speakerinnen has a Contributor Code of Conduct based on the Contributor Covenant. By participating in this project online or at events you agree to abide by its terms.