Back to Projects
Startup Idea & School Project

Restona

Restaurant Management Platform

Next.js
TypeScript
Tailwind CSS
Node.js
Express.js
PostgreSQL
Redis
Cloudinary
Restona main interface

The Problem

In Algeria, many restaurants still manage menus, orders, and staff manually or with inadequate tools. This leads to errors, inefficiency, and difficulty tracking trends. With the restaurant market growing 5% annually, restaurateurs need modern digital solutions to stay competitive.

My Approach

  • 1Collaborated with Zine Eddine Tahri (backend) while I handled the entire frontend—we worked in 2-week sprints with clear deliverables
  • 2Built a modular architecture supporting multiple restaurants per admin, with role-based access (Admin, Chef, Cashier)
  • 3Implemented complete menu management: Categories → Dishes → Additives, with images via Cloudinary and flexible pricing (sizes)
  • 4Created employee management with secure authentication (OTP verification for admins, password-based for staff)
  • 5Designed the system to integrate with future mobile apps for customers and delivery drivers

What It Looks Like

Restaurant admin dashboard - 1
Restaurant admin dashboard - 2
ZH Dashboard Manage all restaurants, deliveries, and analytics from a single interface
Restaurant admin dashboard - 1
Restaurant admin dashboard - 2
Restaurant admin dashboard - 3
Restaurant admin dashboard - 4
Admin Dashboard Manage menus, employees, and his restaurants from a centralized interface
Employee management with role-based access
Employee Management Role-based access for Chefs, and Cashiers

Technical Decisions

Next.js frontend + Node.js/Express backend (separate services)

Decoupled architecture allows frontend and backend to scale independently. Also let us work in parallel—I focused on Next.js while my partner built the Express APIs.

PostgreSQL + Redis for data and caching

PostgreSQL handles complex relational data (restaurants → menus → dishes → additives → employees). Redis caches frequent queries and manages session tokens for faster response times.

Cloudinary for image management

Restaurants upload many dish images. Cloudinary handles optimization, resizing, and CDN delivery—better than managing images ourselves on the server.

OTP-based verification for admin registration

Restaurant admins manage sensitive business data. OTP via SMS adds a verification layer and ensures phone numbers are valid before account creation.

Tradeoffs & Limitations

Every project has constraints. Here's what I chose not to build and why:

  • No payment integration in v1—critical for real deployment but complex to implement (Algerian payment gateways have specific requirements)
  • Mobile apps (client + delivery) designed but not yet built—the web platform is the MVP, mobile is next phase
  • Super admin (ZH) features exist but some operations depend on mobile app data that doesn't exist yet
  • Estimated budget of ~1.5M DZD + $2K for full deployment—realistic for a startup but significant investment

Outcome

Delivered a functional platform covering restaurant management, menu CRUD, employee roles, and admin workflows. The architecture supports the planned expansion to mobile apps. Presented as a startup pitch, not just a school project—with full business plan, budget estimation, and market analysis.

What I Learned

  • First time building a full SaaS-style product with business considerations (pricing, market positioning, competitor analysis)
  • Learned to coordinate frontend/backend development with clear API contracts—we defined endpoints before coding
  • Understood multi-tenancy patterns: one codebase serving multiple restaurants with data isolation
  • Practiced sprint-based development with versioned releases (v1.0 through v6.0 over 2 months)
  • Gained experience with real-world auth flows: OTP verification, role-based access, token management