{"id":35858972,"url":"https://github.com/code4romania/redirectioneaza","last_synced_at":"2026-05-14T10:02:44.074Z","repository":{"id":34403802,"uuid":"125417219","full_name":"code4romania/redirectioneaza","owner":"code4romania","description":"Helping NGOs collect the 230 tax form","archived":false,"fork":false,"pushed_at":"2026-04-22T09:50:28.000Z","size":15913,"stargazers_count":26,"open_issues_count":19,"forks_count":25,"subscribers_count":9,"default_branch":"main","last_synced_at":"2026-04-22T11:36:17.590Z","etag":null,"topics":["civic-hacking","civic-tech","civictech","code4ro","django","python"],"latest_commit_sha":null,"homepage":"https://redirectioneaza.ro","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/code4romania.png","metadata":{"funding":{"github":"code4romania","custom":["https://code4.ro/en/donate/"]},"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.MD","funding":".github/FUNDING.YML","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-03-15T19:34:14.000Z","updated_at":"2026-04-22T09:50:30.000Z","dependencies_parsed_at":"2025-12-04T15:03:29.186Z","dependency_job_id":"0745b9f1-2711-4b2b-a7cf-1a9bdfff3424","html_url":"https://github.com/code4romania/redirectioneaza","commit_stats":null,"previous_names":[],"tags_count":150,"template":false,"template_full_name":null,"purl":"pkg:github/code4romania/redirectioneaza","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code4romania%2Fredirectioneaza","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code4romania%2Fredirectioneaza/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code4romania%2Fredirectioneaza/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code4romania%2Fredirectioneaza/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/code4romania","download_url":"https://codeload.github.com/code4romania/redirectioneaza/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code4romania%2Fredirectioneaza/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32222534,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T10:26:35.452Z","status":"ssl_error","status_checked_at":"2026-04-24T10:25:27.643Z","response_time":64,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["civic-hacking","civic-tech","civictech","code4ro","django","python"],"created_at":"2026-01-08T11:09:41.348Z","updated_at":"2026-04-24T12:07:16.481Z","avatar_url":"https://github.com/code4romania.png","language":"Python","funding_links":["https://github.com/sponsors/code4romania","https://code4.ro/en/donate/"],"categories":[],"sub_categories":[],"readme":"# Redirectioneaza\n\n[![GitHub contributors][ico-contributors]][link-contributors]\n[![GitHub last commit][ico-last-commit]][link-last-commit]\n[![License: MPL 2.0][ico-license]][link-license]\n\n- tax form #230 made easy\n- digital solution for an offline process\n- as simple and as efficient as possible\n- helps you compare and choose who to support\n- helps NGOs reach their public and keep track of their supporters\n\n[See the project live][link-production]\n\n[Contributing](#contributing)\n| [Built With](#built-with)\n| [Development](#development)\n| [Creating a new release](#creating-a-new-release)\n| [Feedback](#feedback)\n| [License](#license)\n| [About Code for Romania](#about-code-for-romania)\n\n## Contributing\n\nThis project is built by amazing volunteers, and you can be one of them. Here's a list of ways\nin [which you can contribute to this project][link-contributing]. If you want to make any change to this repository,\nplease **make a fork first**.\n\nHelp us out by testing this project in the [staging environment][link-staging]. If you see something that doesn't quite\nwork the way you expect it to, open an Issue. Make sure to describe what you _expect to happen_ and _what is actually\nhappening_ in detail.\n\nIf you would like to suggest new functionality, open an Issue and mark it as a __[Feature request]__. Please be specific\nabout why you think this functionality will be of use. If you can, please include some visual description of what you\nwould like the UI to look like if you’re suggesting new UI elements.\n\n## Built With\n\n### Programming languages\n\n- Backend: [Python 3.13](https://www.python.org/) with [Django 5.2](https://www.djangoproject.com/)\n- Frontend: [JavaScript ES6+](https://developer.mozilla.org/en-US/docs/Web/JavaScript) with\n  [Vite 7](https://vitejs.dev/) + [AlpineJS 3](https://alpinejs.dev/) + [TailwindCSS 4](https://tailwindcss.com/)\n\n### Platforms\n\n- [AWS](https://aws.amazon.com/) through [Terraform](https://registry.terraform.io/providers/hashicorp/aws/latest/docs)\n\n### Frontend framework\n\n- HTML Django Templates + TailwindCSS + AlpineJS\n\n### Package managers\n\n- [uv](https://docs.astral.sh/uv/getting-started/installation/)\n- [npm](https://www.npmjs.com/)\n\n### Database technology and provider\n\n- [PostgreSQL](https://www.postgresql.org/)\n\n## Development\n\n### Deployment without Docker\n\n#### Prerequisites\n\n- [UV](https://docs.astral.sh/uv/getting-started/installation/)\n- [NVM](https://github.com/nvm-sh/nvm?tab=readme-ov-file#installing-and-updating)\n- a PostgreSQL 16.10 database (can be run with Docker)\n\n1. Go to the root of the project\n2. Run `cp .env.example .env.local` to create the environment file\n3. Configure your database to run with the configuration in the `.env.local` file or run the database using docker with\n   `docker compose up -d db_psql_dev` or `make rund-db`\n4. Set up the Node.js environment\n    1. Go to the `backend` directory\n    2. Run `nvm use || nvm install` to install the Node.js version specified in the `.nvmrc` file\n    3. Run `npm install` to install the Node.js dependencies\n5. Set up the Python environment\n    1. Go to the `backend` directory\n    2. Create a virtual environment with `uv venv --python 3.13`\n    3. Run `uv sync --active` to install the Python dependencies\n\n#### Running the project\n\n1. Run the Django project in one terminal\n    1. Go to the `backend` directory\n    2. Run `source .venv/bin/activate` to activate the Python virtual environment\n    3. Run `django-admin runserver localhost:8000` to start the Django development server\n2. Run the frontend in another terminal\n    1. Go to the `backend` directory\n    2. Run `nvm use` to use the Node.js version specified in the `.nvmrc` file\n    3. Run `npm run dev` to start the frontend development server\n3. Open http://localhost:8000 in your browser\n\n:information_source:\n**Configure whatever port works best for you.**\nFor Django, change the `:8000` to whatever works best for you.\nFor the frontend, set the `DJANGO_VITE_DEV_SERVER_PORT` variable in the `.env.local` file\n\n:bangbang:\n**In case of problems with the instructions**, please open an issue.\nIf you managed to find a solution, please open a PR with the changes.\n\n### Deployment With Docker\n\n1. Go to the root of the project\n2. Run `cp .env.example .env` to create the environment file\n3. Run `make run` to start the containers with an PostgreSQL database\n4. Open http://localhost:8080 in your browser\n\n### Managing Coding Assistants' instructions\n\nThe instructions for the coding assistants are stored in the `.ruler/` directory.\nEach file corresponds to a specific part of the codebase and contains instructions for the coding assistants on how to\nwrite code, tests, and manage dependencies for that part of the codebase.\n\nMore information can be found in the [ruler.toml](.ruler/ruler.toml) file and in\nthe [GitHub repository](https://github.com/intellectronica/ruler) of the project.\n\n#### Updating the instructions\n\nIf you want to update the instructions for the coding assistants, please update the corresponding file in the `.ruler/`\ndirectory and make a pull request with the changes.\n\n#### Installing Ruler\n\nHaving NPM installed, run the following command to install Ruler globally:\n\n```\nnpm install -g @intellectronica/ruler\n```\n\nor with NPX:\n\n```\nnpx @intellectronica/ruler apply\n```\n\n#### Generating the instructions for the coding assistants\n\n1. Go to the root of the project\n2. Run `ruler apply` to generate the instructions for the coding assistants\n\n#### Adding new Coding Assistants\n\nYou can find the enabled coding assistants in the `ruler.toml` file.\nTo add a new coding assistant, edit the `ruler.toml` file\nand add a new agent to the `default_agents` list.\nPlease check the Ruler docs if there are any agent-specific configurations that need to be added.\n\n1. Uncomment the corresponding section in the `ruler.toml` file\n2. Run `ruler apply` to generate the instructions for the coding assistants and `.gitignore` changes\n3. Make a pull request with the changes.\n\n## Creating a new release\n\nThe production deployment is done through a CI/CD pipeline using GitHub Actions.\nWhen a new release is created, the pipeline will build the Docker images and push them to the Docker Hub registry.\nThen, the infrastructure is updated using Terraform to pull the new images and deploy them to the AWS infrastructure.\n\n### Instructions\n\n1. Create a new tag on GitHub with a new version number and push it.\n    ```\n    git tag -a vX.Y.Z -m \"vX.Y.Z\"\n    git push origin vX.Y.Z\n    ```\n2. Create a new release on GitHub using the new tag.\n   Either through the GitHub UI or using the GitHub CLI:\n    ```\n    gh release create \"vX.Y.Z\" --title \"vX.Y.Z\" --latest --verify-tag --generate-notes\n    ```\n3. The GitHub Actions pipeline will automatically start and build the Docker image.\n4. Once the pipeline is finished, change the `image_tag` variable in the `./terraform/locals.tf` file to the new version\n   number.\n5. Create a new pull request with the changes and, if the Terraform plan looks good, merge it to the `main` branch.\n6. The GitHub Actions pipeline will automatically start and deploy the new version to production.\n7. Check the production site to see if everything is working as expected.\n8. Celebrate!\n\n## Feedback\n\n* Request a new feature on GitHub.\n* Vote for popular feature requests.\n* File a bug in GitHub Issues.\n* Email us with other feedback [contact@code4.ro](mailto:contact@code4.ro) or\n  on [redirectioneaza@code4.ro](mailto:redirectioneaza@code4.ro).\n\n## License\n\nThis project is licensed under the MPL 2.0 License — see the [LICENSE](LICENSE) file for details\n\n## About Code for Romania\n\nStarted in 2016, Code for Romania is a civic tech NGO, official member of the Code for All network. We have a community\nof around 2.000 volunteers (developers, ux/ui, communications, data scientists, graphic designers, devops, it security\nand more) who work pro bono for developing digital solutions to solve social problems. #techforsocialgood. If you want\nto learn more details about our projects [visit our site][link-code4] or if you want to talk to one of our staff\nmembers, please e-mail us at contact@code4.ro.\n\nLast, but not least, we rely on donations to ensure the infrastructure, logistics and management of our community that\nis widely spread across 11 timezones, coding for social change to make Romania and the world a better place. If you want\nto support us, [you can do it here][link-donate].\n\n\n[//]: # (These are reference links used in the body of this note and get stripped out when the markdown processor does its job.)\n\n[ico-contributors]: https://img.shields.io/github/contributors/code4romania/redirectioneaza.svg?style=for-the-badge\n\n[ico-last-commit]: https://img.shields.io/github/last-commit/code4romania/redirectioneaza.svg?style=for-the-badge\n\n[ico-license]: https://img.shields.io/badge/license-MPL%202.0-brightgreen.svg?style=for-the-badge\n\n[link-contributors]: https://github.com/code4romania/redirectioneaza/graphs/contributors\n\n[link-last-commit]: https://github.com/code4romania/redirectioneaza/commits/main\n\n[link-license]: https://opensource.org/licenses/MPL-2.0\n\n[link-contributing]: https://github.com/code4romania/.github/blob/main/CONTRIBUTING.md\n\n[link-production]: https://redirectioneaza.ro\n\n[link-staging]: https://redirectioneaza.staging.heroesof.tech/\n\n[link-code4]: https://www.code4.ro/en/\n\n[link-donate]: https://code4.ro/en/donate/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode4romania%2Fredirectioneaza","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcode4romania%2Fredirectioneaza","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode4romania%2Fredirectioneaza/lists"}