Giter Club home page Giter Club logo

awesome-job-boards's Introduction

Welcome!

Tramcar is a multi-site, self-hosted job board built using Django. This project is still in its infancy, but we welcome your involvement to help us get Tramcar ready for production installs.

Features

  • Host multiple job boards on the same instance using Django's "sites" framework
  • Allow free or paid job postings, with paid postings using Stripe Checkout for payment processing
  • Automatically tweet job details when a post is activated
  • Automatically expire jobs after an admin-defined period
  • E-mail notifications alert the admin when a post is made and the job owner when their job has expired
  • Job posts support Markdown for creating rich text descriptions and application information
  • Send weekly Mailchimp e-mail containing list of jobs posted in last 7 days

Installation

First, clone and install dependencies. This requires python 3.5, pip, and virtualenv to already be installed.

$ git clone https://github.com/tramcar/tramcar
$ cd tramcar
$ virtualenv .venv
$ source .venv/bin/activate
(.venv) $ pip install -r requirements.txt

Tramcar defaults SECRET_KEY in tramcar/settings.py to an empty string which will prevent Django from starting up. This is done to ensure that deployers do not accidentally deploy with a default value. Before proceeding, set a unique value for SECRET_KEY in tramcar/settings.py. If you have pwgen installed, simply do this:

$ RANDOM_PWD=$(pwgen -s 50 1)
$ sed -i.bak "s/^SECRET_KEY = ''$/SECRET_KEY = '$RANDOM_PWD'/g" tramcar/settings.py

Now, apply database migrations, create an admin user, and start the development server:

(.venv) $ python manage.py migrate
(.venv) $ python manage.py createsuperuser
Username (leave blank to use 'root'): admin
Email address: [email protected]
Password:
Password (again):
Superuser created successfully.

The default site has a domain of example.com, this will need to be changed to localhost for development testing or to whatever live domain you will be using in production. For example, to test Tramcar locally, issue the following command:

(.venv) $ sqlite3 db.sqlite3 "UPDATE django_site SET domain='localhost' WHERE name='example.com';"

Fixtures

We have a fixtures file in job_board/fixtures/countries.json, which you can load into your database by running the following:

(.venv) $ python manage.py loaddata countries.json

This will save you having to import your own list of countries. However, be aware that any changes made to the job_board_country table will be lost if you re-run the above.

Start Tramcar

To run Tramcar in a development environment, you can now start it using the light-weight development web server:

(.venv) $ python manage.py runserver

To run Tramcar using Apache2 and mod_wsgi, see the following for more information.

Final Steps

At this point, Tramcar should be up and running and ready to be used. Before you can create a company and job, log into http://localhost:8000/admin using the username and password defined above. Once in, click Categories under JOB_BOARD and add an appropriate category for the localhost site.

That's it! With those steps completed, you can now browse http://localhost:8000 to create a new company, and then post a job with that newly created company.

(If deploying with a non-localhost domain, replace localhost above with the domain you are using)

Job Expiration

Jobs can be expired manually by logging in as an admin user and then clicking the Expire button under Job Admin when viewing a given job. A simpler solution is to run this instead:

(.venv) $ python manage.py expire

The above will scan through all jobs across all sites and expire out any jobs older than the site's expire_after value. Ideally, the above should be scheduled with cron so that jobs are expired in a consistent manner.

Mailshot Automation

If a site has mailchimp_username, mailchimp_api_key, and mailchimp_list_id set, run the following to create and send a Mailchimp campaign containing a list of all jobs posted in the last 7 days:

(.venv) $ python manage.py send_mailshot

Again, cron the above to run once a week so that these campaigns are built and sent automatically.

If you're unsure what the mailchimp_list_id is for the list in question, populate mailchimp_username and mailchimp_api_key for the site and then run the following command to display all lists on this site's MailChimp account:

(.venv) $ python manage.py display_lists <site_domain>

The value under the ID column for the associated list is what should get assigned to mailchimp_list_id.

Support

Found a bug or need help with installation? Please feel free to create an issue and we will assist as soon as possible.

awesome-job-boards's People

Contributors

4kimov avatar acron0 avatar agarella avatar aimljobs avatar alexstyl avatar angezanetti avatar boina92 avatar bwstud avatar constant-deschietere avatar gauthamzz avatar george-field avatar ksaitor avatar marcelscruz avatar marckohlbrugge avatar michalmalota avatar stefanwuthrich avatar stevenqzhang avatar stevepisani avatar tirex avatar tomolo997 avatar tompec avatar tramcarjobs avatar tuckpuck avatar vrq avatar wejob-ch avatar werkington avatar wfhio avatar wlojtek avatar yihwan avatar zacscodingclub avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

awesome-job-boards's Issues

Validate pull requests with Travis

Hello, I wrote a tool that can validate README links (valid URLs, not duplicate). It can be run when someone submits a pull request.

It is currently being used by

Examples

If you are interested, connect this repo to https://travis-ci.org/ and add a .travis.yml file to the project.

See https://github.com/dkhamsing/awesome_bot for options, more information
Feel free to leave a comment ๐Ÿ˜„

Contribution: Tech Workplace Search Engine Techmap.io

Hi,
if you are interested in contributions I would like to propose our new Startup Techmap (https://techmap.io). Techmap is a map-based workplace search engine to find companies using technologies that are used by the companies internally. Developers, students, or freelancers can search for companies using technologies they love and then apply via a speculative application.

Hope you find this interesting and add it to your awesome list!

careervault.io 502

Hi @DemiliciousOne , I'm removing careervault.io as it's currently generating a 502 and causing our CI to fail:

  3. [L151] 502 https://careervault.io/  

Please let me know when this has been resolved and I'll then re-add the site back in.

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.