Nem per feina
Nem per feina is an open source project promoted by GeeksCat association for Hactoberfest 2020 event.
Show your support by
The project
The objective of this hackathon is to launch a job portal website where tech community can find curated job opportunities from local companies.
We forked the open source project django-job-portal (See demo 1, demo 2) and use it as a baseline.
Deployment
Kubernetes deployment
To deploy to a k8s cluster see the k8s manifests
Contributing
Nem per feina is a collaborative effort where everybody is more than welcome to contribute, no experience is required!
Have a look at CONTRIBUTING.md file that describes the process to submit a contribution, and come say hi
Tech stack
- Backend: A django web application on top of a PostgreSQL database. It contains all business logic, data model (ORM) and a django-rest-framework REST API to power the frontend/UI
- Frontend: A frontoffice using vue.js/SASS using BEMIT Architecture and Nuxt, and a backoffice using React/styled-components and Next
- Arch-ci: Dockerized dev environment, CI/CD workflow and Kubernettes cluster for production and more!
Setup backend development environment
Dockerized environment
If you wish to use a dockerized development environment, you can easily do so by following these steps:
-
Add
.env
file:cp .env.dev.sample .env
-
Start local development environment:
make start
Or, if you wish to run in detached mode:
make serve
-
Execute tests:
make test
-
To see all available options:
make help
Development with docker dev environment
Once the environment is up and running, you can modify the project files and the Django auto-reload will pick up your changes in the container.
To stop the dockerized development environment use:
CTRL+C
or make stop
if you run in detached mode.
Executing database migrations
The app container runs database migrations at every startup, so simply restart the app server with
make restart c=app
Changing requirements file
If during development you need to change the requirements.txt
file you'll also have to rebuild the container:
-
Build images again with
make build
ormake build c=app
// orc=test
-
Stop and remove your environment with
make restart
. Even though continers are removed, your database volume will be preserved.
Recreate database
If you want to recreate the database:
-
Delete everything including volumes with
make purge
-
Restart everything with
make up
(ormake server
for detached mode)
Local environment
Install
-
Create a virtual environment
virtualenv venv
Or
python3.8 -m venv venv
-
Activate it
source venv/bin/activate
-
Install the packages in the virtual env:
pip install -r requirements.txt
-
Add
.env
file.cp .env.dev.sample .env
Run
1.With the venv activate it, execute:
`python manage.py collectstatic`
Note : Collect static is not necessary when debug is True (in dev mode)
-
Create initial database:
python manage.py migrate
-
Load demo data (optional):
python manage.py loaddata demo
-
Run server:
python manage.py runserver 0.0.0.0:8000
β¨
Contributors Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!