Skip to content

Commit f7249a8

Browse files
barckcodeclaude
andcommitted
feat: prepare project for public release
Rewrite README with intro, data notice, and features for open source visibility. Add CODE_OF_CONDUCT.md (Contributor Covenant) and CONTRIBUTING.md with development setup and guidelines. Add GitHub repository link with icon to the site footer. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 55b6644 commit f7249a8

File tree

4 files changed

+160
-18
lines changed

4 files changed

+160
-18
lines changed

CODE_OF_CONDUCT.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Code of Conduct
2+
3+
## Our Pledge
4+
5+
We as members, contributors, and leaders pledge to make participation in our community a positive experience for everyone, regardless of background or identity.
6+
7+
## Our Standards
8+
9+
**Positive behaviors include:**
10+
11+
- Using welcoming and inclusive language
12+
- Being respectful of differing viewpoints and experiences
13+
- Gracefully accepting constructive criticism
14+
- Focusing on what is best for the community
15+
- Showing empathy towards other community members
16+
17+
**Unacceptable behaviors include:**
18+
19+
- Trolling, insulting or derogatory comments, and personal attacks
20+
- Public or private harassment
21+
- Publishing others' private information without explicit permission
22+
- Other conduct which could reasonably be considered inappropriate in a professional setting
23+
24+
## Enforcement
25+
26+
Project maintainers are responsible for clarifying and enforcing standards of acceptable behavior. They have the right to remove, edit, or reject contributions that do not align with this Code of Conduct.
27+
28+
Instances of unacceptable behavior may be reported by opening an issue on the [GitHub repository](https://github.com/barckcode/tf-mobility) or contacting the project maintainers directly.
29+
30+
## Attribution
31+
32+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1.

CONTRIBUTING.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Contributing to TF Mobility
2+
3+
Thank you for your interest in contributing to TF Mobility! This is a citizen transparency project, and community contributions are welcome.
4+
5+
Please read and follow our [Code of Conduct](CODE_OF_CONDUCT.md) before participating.
6+
7+
## How to Contribute
8+
9+
1. **Open an issue first** — Before starting work, open a GitHub issue to discuss your proposed change. This helps avoid duplicate effort and ensures alignment with the project direction.
10+
2. **Fork and branch** — Fork the repository and create a feature branch from `main`.
11+
3. **Submit a pull request** — Once your changes are ready, open a PR referencing the related issue.
12+
13+
## Development Setup
14+
15+
### Docker (recommended)
16+
17+
The simplest way to run the full stack locally:
18+
19+
```bash
20+
docker-compose up --build
21+
```
22+
23+
This starts the frontend, backend, ETL pipelines, and Nginx reverse proxy. The ETL service will automatically collect and process data into the SQLite database.
24+
25+
### Individual Services
26+
27+
For working on a specific service, see the [README](README.md#individual-services) for instructions on running each service independently.
28+
29+
## Guidelines
30+
31+
- **Language**: All code, commits, and documentation must be written in **English**.
32+
- **ETL pipelines** run inside Docker and use a single SQLite database file. Do not introduce additional databases.
33+
- **Follow existing conventions** — Match the code style and patterns already present in the codebase.
34+
- **Write tests** for new functionality and ensure existing tests continue to pass.
35+
- **Keep PRs focused** — One feature or fix per pull request.
36+
37+
## Data Notice
38+
39+
The processed data (SQLite database, ETL cache) is not included in the repository. You need to run the ETL pipelines to generate it. See the [README](README.md#getting-started) for details.
40+
41+
## Reporting Issues
42+
43+
Use [GitHub Issues](https://github.com/barckcode/tf-mobility/issues) to report bugs or suggest features. Please include:
44+
45+
- A clear description of the issue
46+
- Steps to reproduce (for bugs)
47+
- Expected vs actual behavior

README.md

Lines changed: 64 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,78 @@
11
# TF Mobility
22

3-
Observatorio de Movilidad de Tenerife - Transparency platform for mobility and infrastructure data in Tenerife.
3+
[![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
4+
5+
**Citizen Transparency Observatory for Mobility and Infrastructure in Tenerife**
6+
7+
---
8+
9+
## Introduction
10+
11+
TF Mobility is an independent citizen transparency platform that collects, processes, and visualizes public data about mobility and infrastructure in Tenerife, Canary Islands. It aims to make government data accessible and understandable to citizens by aggregating information from official sources into a single, easy-to-navigate dashboard.
12+
13+
The platform covers traffic intensity, public transportation analysis, government contract transparency, tourism statistics, and infrastructure projects. All data is sourced from publicly available government datasets and processed through automated ETL pipelines.
14+
15+
This is an independent citizen initiative with no political affiliation. Its sole purpose is to promote transparency and informed public discourse about mobility decisions on the island.
16+
17+
## Data Notice
18+
19+
> **Warning**
20+
> The processed data (SQLite database and ETL cache files) is **not included** in this repository. To populate the database, you must run the ETL pipelines. See the [Getting Started](#getting-started) section for instructions.
21+
22+
## Features
23+
24+
- **Traffic Intensity** — Interactive maps and charts showing real-time and historical traffic data across Tenerife
25+
- **Public Transit Analysis** — Comprehensive study of bus (TITSA), tram (Tranvía), taxi, and VTC services
26+
- **Contract Transparency** — Government contracts database with company details, award amounts, and related entities
27+
- **Tourism Statistics** — Visitor data and its relationship to mobility infrastructure
28+
- **Government Promises Tracker** — Monitoring of official commitments related to mobility projects
29+
- **Alternatives Comparison** — Analysis comparing proposed infrastructure solutions
30+
31+
## Tech Stack
32+
33+
| Layer | Technologies |
34+
|---|---|
35+
| **Frontend** | React 19, Vite, TypeScript, Tailwind CSS v4, Recharts, Leaflet |
36+
| **Backend** | FastAPI, SQLAlchemy, SQLite, Pydantic v2 |
37+
| **ETL** | Python, Requests, BeautifulSoup4, lxml |
38+
| **Infrastructure** | Docker, Nginx, Docker Compose |
439

540
## Project Structure
641

742
```
843
tf-mobility/
9-
├── frontend/ # React + Vite + TypeScript + Tailwind CSS
10-
├── backend/ # FastAPI + SQLAlchemy + SQLite
11-
├── etl/ # Python ETL pipelines for data collection
12-
├── nginx/ # Nginx reverse proxy configuration
44+
├── frontend/ # React + Vite + TypeScript + Tailwind CSS
45+
├── backend/ # FastAPI + SQLAlchemy + SQLite
46+
├── etl/ # Python ETL pipelines for data collection
47+
├── nginx/ # Nginx reverse proxy configuration
48+
├── ssl/ # SSL certificate configuration
1349
└── docker-compose.yml
1450
```
1551

16-
## Development
52+
## Getting Started
53+
54+
### Docker (recommended)
55+
56+
The easiest way to run the full stack:
1757

18-
### Frontend
58+
```bash
59+
docker-compose up --build
60+
```
61+
62+
This starts the frontend, backend, ETL pipelines, and Nginx reverse proxy. The ETL service will automatically begin collecting and processing data into the SQLite database.
63+
64+
### Individual Services
65+
66+
For development, you can run each service independently:
67+
68+
**Frontend:**
1969
```bash
2070
cd frontend
2171
npm install
2272
npm run dev
2373
```
2474

25-
### Backend
75+
**Backend:**
2676
```bash
2777
cd backend
2878
python3 -m venv .venv
@@ -31,7 +81,7 @@ pip install -r requirements.txt
3181
uvicorn app.main:app --reload
3282
```
3383

34-
### ETL
84+
**ETL:**
3585
```bash
3686
cd etl
3787
python3 -m venv .venv
@@ -40,14 +90,10 @@ pip install -r requirements.txt
4090
python main.py
4191
```
4292

43-
### Docker
44-
```bash
45-
docker-compose up --build
46-
```
93+
## License
4794

48-
## Tech Stack
95+
This project is licensed under the Apache License 2.0 — see the [LICENSE](LICENSE) file for details.
96+
97+
## Contributing
4998

50-
- **Frontend**: React 19, Vite, TypeScript, Tailwind CSS v4, Recharts, Leaflet
51-
- **Backend**: FastAPI, SQLAlchemy, SQLite, Pydantic v2
52-
- **ETL**: Python, Requests, BeautifulSoup4, lxml
53-
- **Infrastructure**: Docker, Nginx, Docker Compose
99+
Contributions are welcome! Please read our [Contributing Guide](CONTRIBUTING.md) and [Code of Conduct](CODE_OF_CONDUCT.md) before submitting a pull request.

frontend/src/components/Footer/Footer.tsx

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,23 @@ export function Footer() {
99
<div className="mt-6 flex items-center justify-center gap-4 text-xs text-slate-500">
1010
<span>TF Mobility &copy; {new Date().getFullYear()}</span>
1111
<span aria-hidden="true">&middot;</span>
12+
<a
13+
href="https://github.com/barckcode/tf-mobility"
14+
target="_blank"
15+
rel="noopener noreferrer"
16+
aria-label="GitHub repository"
17+
className="inline-flex items-center gap-1 text-slate-500 hover:text-slate-300 transition-colors"
18+
>
19+
<svg
20+
viewBox="0 0 16 16"
21+
className="h-4 w-4 fill-current"
22+
aria-hidden="true"
23+
>
24+
<path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27s1.36.09 2 .27c1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8z" />
25+
</svg>
26+
<span>GitHub</span>
27+
</a>
28+
<span aria-hidden="true">&middot;</span>
1229
<span>Datos abiertos de Tenerife</span>
1330
</div>
1431
</div>

0 commit comments

Comments
 (0)