A fullstack application for planning and managing summer camps with interactive map-based features.
Tenty is a comprehensive camp planning solution that allows users to:
- Create and manage camps (main camps and sub-camps)
- Define camp zones and boundaries on interactive maps
- Place and manage camp features (tents, facilities, infrastructure)
- Collaborate with team members with role-based permissions
- Plan camp details, dates, and logistics
- F# with ASP.NET Core
- PostgreSQL with PostGIS for spatial data
- JWT authentication
- RESTful API
- Angular 20 (Standalone Components)
- OpenLayers 10 for interactive mapping
- Angular Material for UI components
- RxJS for reactive state management
tenty/
├── backend/
│ └── backend-tenty/ # F# ASP.NET Core API
│ ├── Controller/ # API endpoints
│ ├── Service/ # Business logic
│ ├── Model/ # Domain models & DTOs
│ ├── Database/ # Database access layer
│ └── README.md # Backend documentation
├── frontend/
│ └── tenty-frontend/ # Angular application
│ ├── src/app/
│ │ ├── components/ # UI components
│ │ ├── service/ # Frontend services
│ │ └── models/ # TypeScript DTOs
│ └── README.md # Frontend documentation
└── dev/
├── docker-compose.yml # Local PostgreSQL + PostGIS
└── init.sql # Database schema & seed data
- Node.js 18+ and npm
- .NET 9 SDK
- Docker (for local database)
-
Clone the repository
git clone <repository-url> cd tenty
-
Start the database
cd dev docker compose up -d -
Run the backend
cd backend/backend-tenty dotnet runBackend runs on
http://localhost:5000(Swagger at/swagger) -
Run the frontend
cd frontend/tenty-frontend npm install npm startFrontend runs on
http://localhost:4200 -
Login with test users Use any of these emails:
anna.mueller@example.comlukas.schmidt@example.comsophie.weber@example.com
- Backend Documentation - API endpoints, services, architecture
- Frontend Documentation - Components, services, development guide
- ✅ User authentication (JWT-based)
- ✅ Camp creation and management
- ✅ Interactive map with OpenLayers
- ✅ Zone drawing (polygons for camp boundaries)
- ✅ Location picking (camp center point)
- ✅ Multi-step camp creation form
- ✅ Camp details (dates, description, lists)
- ✅ User permissions and camp sharing
- 🚧 Feature placement (tents, facilities)
- 🚧 Transform interaction for icons (rotate/scale)
- 🚧 Feature service and API integration
- 🚧 Real-time collaboration
The application uses PostgreSQL with PostGIS extension. Key tables:
users- User accountscamps- Main and sub-campscamp_zones- Polygon zones within campsfeatures- Camp elements (tents, facilities) with geometrycamp_details- Additional camp information
See dev/init.sql for complete schema and seed data.
Database schema is managed through SQL migration scripts in dev/init.sql.
Backend API documentation can be accessed at http://localhost:5000/swagger when running in development mode.
- Backend:
backend/backend-tenty/appsettings.Development.json - Frontend:
frontend/tenty-frontend/src/environments/environment.ts