- tax form #230 made easy
- digital solution for an offline process
- as simple and as efficient as possible
- helps you compare and choose who to support
- helps NGOs reach their public and keep track of their supporters
Contributing | Built With | Development | Creating a new release | Feedback | License | About Code for Romania
This project is built by amazing volunteers, and you can be one of them. Here's a list of ways in which you can contribute to this project. If you want to make any change to this repository, please make a fork first.
Help us out by testing this project in the staging environment. If you see something that doesn't quite work the way you expect it to, open an Issue. Make sure to describe what you expect to happen and what is actually happening in detail.
If you would like to suggest new functionality, open an Issue and mark it as a [Feature request]. Please be specific about why you think this functionality will be of use. If you can, please include some visual description of what you would like the UI to look like if you’re suggesting new UI elements.
- Backend: Python 3.13 with Django 5.2
- Frontend: JavaScript ES6+ with Vite 7 + AlpineJS 3 + TailwindCSS 4
- HTML Django Templates + TailwindCSS + AlpineJS
- Go to the root of the project
- Run
cp .env.example .env.localto create the environment file - Configure your database to run with the configuration in the
.env.localfile or run the database using docker withdocker compose up -d db_psql_devormake rund-db - Set up the Node.js environment
- Go to the
backenddirectory - Run
nvm use || nvm installto install the Node.js version specified in the.nvmrcfile - Run
npm installto install the Node.js dependencies
- Go to the
- Set up the Python environment
- Go to the
backenddirectory - Create a virtual environment with
uv venv --python 3.13 - Run
uv sync --activeto install the Python dependencies
- Go to the
- Run the Django project in one terminal
- Go to the
backenddirectory - Run
source .venv/bin/activateto activate the Python virtual environment - Run
django-admin runserver localhost:8000to start the Django development server
- Go to the
- Run the frontend in another terminal
- Go to the
backenddirectory - Run
nvm useto use the Node.js version specified in the.nvmrcfile - Run
npm run devto start the frontend development server
- Go to the
- Open http://localhost:8000 in your browser
ℹ️
Configure whatever port works best for you.
For Django, change the :8000 to whatever works best for you.
For the frontend, set the DJANGO_VITE_DEV_SERVER_PORT variable in the .env.local file
- Go to the root of the project
- Run
cp .env.example .envto create the environment file - Run
make runto start the containers with an PostgreSQL database - Open http://localhost:8080 in your browser
The production deployment is done through a CI/CD pipeline using GitHub Actions. When a new release is created, the pipeline will build the Docker images and push them to the Docker Hub registry. Then, the infrastructure is updated using Terraform to pull the new images and deploy them to the AWS infrastructure.
- Create a new tag on GitHub with a new version number and push it.
git tag -a vX.Y.Z -m "vX.Y.Z" git push origin vX.Y.Z - Create a new release on GitHub using the new tag.
Either through the GitHub UI or using the GitHub CLI:
gh release create "vX.Y.Z" --title "vX.Y.Z" --latest --verify-tag --generate-notes - The GitHub Actions pipeline will automatically start and build the Docker image.
- Once the pipeline is finished, change the
image_tagvariable in the./terraform/locals.tffile to the new version number. - Create a new pull request with the changes and, if the Terraform plan looks good, merge it to the
mainbranch. - The GitHub Actions pipeline will automatically start and deploy the new version to production.
- Check the production site to see if everything is working as expected.
- Celebrate!
- Request a new feature on GitHub.
- Vote for popular feature requests.
- File a bug in GitHub Issues.
- Email us with other feedback [email protected] or on [email protected].
This project is licensed under the MPL 2.0 License — see the LICENSE file for details
Started in 2016, Code for Romania is a civic tech NGO, official member of the Code for All network. We have a community of around 2.000 volunteers (developers, ux/ui, communications, data scientists, graphic designers, devops, it security and more) who work pro bono for developing digital solutions to solve social problems. #techforsocialgood. If you want to learn more details about our projects visit our site or if you want to talk to one of our staff members, please e-mail us at [email protected].
Last, but not least, we rely on donations to ensure the infrastructure, logistics and management of our community that is widely spread across 11 timezones, coding for social change to make Romania and the world a better place. If you want to support us, you can do it here.