RecApp is a web application forum dedicated to fitness recipes, designed with a modern interface inspired by SaporNet. The application allows users to share, discover, and interact with healthy recipes suitable for a fitness lifestyle.
- Location:
client/ - Framework: React 18 with Vite
- Routing: React Router DOM
- Styling: Modern CSS with gradients and animations
- Main Components:
Navbar: Main navigation with logo, search, favoritesHero: Hero section with call-to-actionCategoryButtons: Category grid (Protein-rich, Low Carb, Vegan, etc.)RecipeCard: Individual recipe cards with rating, likes, difficulty
- Location:
server/ - Framework: Node.js + Express
- Database: PostgreSQL with Prisma ORM
- Caching: Redis for performance
- Authentication: JWT + OAuth (Google/GitHub)
- Users: User management and profiles
- Recipes: Recipes with ingredients, instructions, nutritional values
- Comments: Comment system
- Ratings: Recipe ratings
- Badges: Gamification system
- Node.js 18+
- PostgreSQL 14+
- Docker (optional)
# Backend
cd server
npm install
npx prisma migrate dev --name init
npm run dev
# Frontend
cd ../client
npm install
npm run dev# Complete launch with Docker Compose
docker-compose up --build- Frontend: http://localhost:5173
- Backend API: http://localhost:3000
- Database: PostgreSQL su porta 5432
- Redis: porta 6379
Prima di avviare il progetto, configura le variabili d'ambiente nel file server/.env:
# Copia il file di esempio
cp server/.env.example server/.envGenera una chiave sicura per JWT:
# Su Linux/Mac
openssl rand -base64 32
# Su Windows (PowerShell)
[System.Web.Security.Membership]::GeneratePassword(32,0)- Vai su Google Cloud Console
- Crea un nuovo progetto o selezionane uno esistente
- Abilita l'API "Google+ API"
- Vai su "Credentials" β "Create Credentials" β "OAuth 2.0 Client IDs"
- Configura:
- Application type: Web application
- Authorized redirect URIs:
http://localhost:3000/auth/google/callback
- Copia Client ID e Client Secret nel
.env
- Vai su GitHub Developer Settings
- Clicca "New OAuth App"
- Configura:
- Homepage URL:
http://localhost:5173 - Authorization callback URL:
http://localhost:3000/auth/github/callback
- Homepage URL:
- Copia Client ID e Client Secret nel
.env
# Database
DATABASE_URL="postgresql://postgres:nuovapassword@localhost:5432/recapp?schema=public"
REDIS_URL="redis://localhost:6379"
# Server
PORT=3000
NODE_ENV=development
# JWT Secret
JWT_SECRET="your-generated-secret-key-here"
# Google OAuth
GOOGLE_CLIENT_ID="your-google-client-id.apps.googleusercontent.com"
GOOGLE_CLIENT_SECRET="your-google-client-secret"
# GitHub OAuth
GITHUB_CLIENT_ID="your-github-client-id"
GITHUB_CLIENT_SECRET="your-github-client-secret"
# Frontend URL
FRONTEND_URL="http://localhost:5173"- Primary: Orange gradient (#ff6b35 β #ff4500)
- Background: Cream/Beige (#ffeee6, #ffe5d9)
- Text: Dark gray (#2d2d2d)
- Accents: Green for easy difficulty, red for hard
- Cards: Border radius 20px, hover animations
- Buttons: Gradient background, shadow effects
- Typography: Font weight 800 for titles, Segoe UI family
- Responsive: Grid layout with auto-fit, mobile-first
- Setup progetto con separazione client/server
- Configurazione Docker + PostgreSQL + Redis
- Schema database con Prisma
- Componenti UI base (Navbar, Hero, Categories, RecipeCard)
- Design responsive ispirato a SaporNet
- Sistema di autenticazione completo (JWT + OAuth Google/GitHub)
- Componenti Login/Signup con UI moderna
- Routing e gestione stato utente
- React Router per navigazione
- API REST per ricette
- Upload immagini ricette
- Sistema di like/preferiti
- Recipe detail page
- User profile
- Comment system
- Advanced search and filters
- Admin dashboard
- Notification system
- React 18
- Vite 5
- React Router DOM
- CSS3 (Flexbox, Grid, Animations)
- Node.js
- Express.js
- Prisma ORM
- PostgreSQL
- Redis
- JWT + Passport.js
- bcryptjs
- Docker & Docker Compose
- Git & GitHub
RecApp/
βββ client/ # React frontend
β βββ src/
β β βββ components/ # React components
β β βββ pages/ # Pages (to be implemented)
β β βββ hooks/ # Custom hooks
β β βββ utils/ # Utilities
β βββ public/
β βββ package.json
βββ server/ # Node.js backend
β βββ src/
β β βββ routes/ # API routes
β β βββ models/ # Database models
β β βββ middleware/ # Express middleware
β β βββ config/ # Configurations
β βββ prisma/ # Database schema
β βββ package.json
βββ docs/ # Documentation
βββ docker-compose.yml # Container orchestration
βββ README.md
- Development: GitHub Copilot AI Assistant
- Design: Inspired by SaporNet
- Project: RecApp Fitness Recipe Forum
- Database configured with user
recapp_userand databaserecapp - Redis used for caching and sessions
- JWT for stateless authentication
- Prisma for type-safe ORM
- Vite for fast development and optimized builds
Replace placeholders and customize features according to your needs!
