Skip to content
All projects

Project

NETME: Meet-Up App, Partner Panel and Admin Panel

NETME: Meet-Up App, Partner Panel and Admin Panel screenshot 11 / 6
  • 24

    Technologies

  • 15

    Key features

  • 6

    Screenshots

  • Live

    In production

Overview

NETME is a Munich startup with a simple idea: fewer chats, more real meet-ups. You open the app, see who nearby is up for something, pick a café or bar and send an invite. No swiping, no matching. Local venues pay to be the place where those meet-ups happen.

The product is five separate codebases that all talk to one API: the iOS and Android apps, the public website at netme.eu, a partner panel for venues and an admin panel for the NETME team. I joined in mid-2024 and since then I have worked on the API, both panels and the website.

How the pieces fit together

  • The app (iOS and Android): where users find people around them, send invites, chat and get reminders. It is the main customer of the API.
  • The website (netme.eu): explains the app, sends people to the stores, and has a separate "Become a Partner" page that signs up restaurants, bars and coffee shops. It is in German and English.
  • The partner panel (partner.netme.eu): a venue owner edits their profile and sees exactly how it looks in the app, books ads and push notifications, follows impressions, clicks and invites on a daily chart, prints their QR code and messages the NETME team.
  • The admin panel (admin.netme.eu): the NETME team approves or rejects ads and push requests (with a reason the partner can read), manages partners, users, vouchers and subscription plans, and answers partner messages.
  • The API: Node.js, Express and MongoDB. It handles invites, places, ads, payments, chat, notifications and the scheduled jobs that keep everything tidy.

What I worked on

Places. An invite needs a place you would actually meet someone. Place search goes through our own endpoint to the new Google Places API, results are filtered on the place's primary type so cafés, bars, restaurants and similar spots come up (not car parks or petrol stations), and a score puts the better options first. Distances between users are calculated on the server, not trusted from the phone.

Ads that make sense for the user. A partner ad is only useful if it is near you. The ad query now uses MongoDB geospatial search inside a city-sized radius, removes duplicates between partner ads and external ads, and picks the ad each user has seen least that day, so one venue doesn't take every slot. Impressions and clicks are counted on the server, which is where the partner's dashboard chart gets its numbers. Rejected ads can be fixed and re-run without starting from scratch.

Payments. Partners pay for their plan with Stripe (Starter, Business, Enterprise), and the partner panel locks paid features when a plan expires. App users buy premium through the App Store or Google Play, so the API verifies those purchases with Apple's and Google's servers before unlocking anything. A nightly job handles expiries.

Messaging and notifications. Admin and partner messages moved to Firebase, with images, documents and inbox/outbox pagination. Both panels sign in to Firebase with a token issued by our API, so there is one login, not two. New ad requests, push requests and messages show up live in the panels over Socket.io, and the app gets push notifications through Firebase Cloud Messaging.

Safety and clean-up. Rate limits on login, OTP and other sensitive routes, middleware that blocks scanner and bot traffic, stricter validation on social sign-in, and server-side encryption for uploaded files. When a user deletes their account, one service removes their data across every collection, and the panels show "deleted user" instead of breaking. Media that is no longer used is cleared out every night.

Deployment. The API runs with PM2 on AWS EC2 behind Nginx, with a Docker setup for local work. GitLab CI runs the tests and a secret scan on every merge request and deploys main over SSH.

Where it is now

NETME is live in Munich. The apps are in the App Store and Google Play, and venues are signing up through the partner panel. The admin and partner panels are private, so the screenshots here come from a real partner account and the admin side.

If you are building a location-based app, a marketplace with a partner side, or you need an admin panel for an existing product, tell me about it.

Key features

  • Map of people nearby who are open to meeting right now
  • Invitations with a time and a real place, picked from Google Places
  • Invites expire on their own, with reminders before the meet-up
  • Partner panel for cafés, bars and restaurants: profile, ads, push campaigns
  • Partner analytics: impressions, clicks and invites per day
  • QR code for each venue, ready to print or download
  • Location-based ads served within the user's city
  • Partner plans paid with Stripe; app premium through App Store and Google Play
  • Admin review queue for ads and push notifications, with reject reasons
  • Admin ↔ partner messaging with images and documents (Firebase)
  • Real-time notifications in both panels over Socket.io
  • Vouchers, loyalty stamps and partner subscription plans
  • Rate limiting and bot blocking on the API
  • Self-service account deletion that cleans up a user's data
  • German and English website

Free consultation · no commitment

Have a project in mind? Let's build it.

Tell me what you're building. I'll reply within 24 hours with next steps and a clear plan.

Or email rakibulinux@gmail.com