TasteStack is a modern recipe sharing platform that allows users to discover, share, and interact with recipes from around the world. Built with Django REST Framework backend and React frontend, it provides a seamless experience for food enthusiasts.
- Frontend: https://taste-stack.vercel.app/
- Backend API: https://shksabbir7.pythonanywhere.com/
- Admin Panel: https://shksabbir7.pythonanywhere.com/admin/
- API Documentation: View API Endpoints
Modern landing page with featured recipes and statistics
Browse and search through recipes with advanced filters
Personal dashboard with statistics and recipe management
- ๐ Recipe Discovery: Browse and search through a vast collection of recipes
- ๐จโ๐ณ Recipe Management: Create, edit, and share your own recipes
- โญ Rating System: Rate recipes from 1-5 stars
- ๐ฌ Comments & Social: Comment on recipes and interact with other users
- โค๏ธ Favorites: Like and save your favorite recipes
- ๐ฑ Responsive Design: Works perfectly on desktop, tablet, and mobile
- ๐ Dark/Light Mode: Toggle between dark and light themes for comfortable viewing
- ๐ผ๏ธ Image Upload: Add beautiful photos to your recipes
- ๐ User Authentication: Secure registration, login, and password reset
- ๐ค User Profiles: Personalized profiles with bio and profile pictures
- ๐ Follow System: Follow other users and see their activities
- ๐ Dashboard: Personal dashboard with statistics and recent activity
# Clone repository
git clone https://github.com/alphapie77/TasteStack.git
cd TasteStack
# Start with SQLite (simple)
docker\run-sqlite.bat
# OR start with PostgreSQL (production)
docker\run-postgres.bat- Python 3.9+ - Download here
- Node.js 18+ - Download here
- Git - Download here
- Docker (optional) - Download here
git clone https://github.com/alphapie77/TasteStack.git
cd TasteStack# Run setup script (installs everything)
scripts\setup.bat
# Start development servers
scripts\start-dev.batcd backend
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # macOS/Linux
pip install -r requirements.txt
python manage.py migrate
python manage.py createsuperuser # optional
python manage.py runservercd app
npm install
# Create .env file with:
# REACT_APP_API_URL=http://localhost:8000/api
# REACT_APP_MEDIA_URL=http://localhost:8000
npm startdocker\run-sqlite.bat # Start
docker\stop-sqlite.bat # Stopdocker\run-postgres.bat # Start
docker\stop-postgres.bat # StopAccess URLs:
- Frontend: http://localhost:3000
- Backend: http://localhost:8000
- URL: https://taste-stack.vercel.app/
- Status: Production Ready
- Integration: Connected to PythonAnywhere backend
- Features: Full recipe sharing platform with authentication
- URL: https://shksabbir7.pythonanywhere.com/
- Status: Production Ready
- Database: SQLite (5 sample recipes loaded)
- Authentication: JWT tokens working
- CORS: Configured for frontend integration
- Access the application: Open your web browser and go to https://taste-stack.vercel.app/ or
http://localhost:3000for local development - Create an account: Click "Register" to create a new user account
- Browse recipes: Explore recipes on the home page
- Create recipes: Click "Add Recipe" to share your own recipes
- Interact: Rate, comment, and like recipes from other users
- Visit https://taste-stack.vercel.app/ (or http://localhost:3000 for local development)
- Click "Get Started" or "Register"
- Fill in registration form with required details
- Login with your credentials
- Access your personalized dashboard
- Create Recipe: Click "Share Recipe" from dashboard
- Edit Recipe: Access via "My Recipes" in dashboard
- Delete Recipe: Use options menu in recipe details
- Rate Recipes: Use star rating system on recipe pages
- Comment: Add comments on individual recipe pages
- Like/Unlike: Heart icon on recipe cards
- Browse Recipes: Use "Explore Recipes" from homepage
- Search: Use search bar to find specific recipes
- Filter: Apply filters by cuisine, difficulty, time, etc.
If you created a superuser during setup:
- Username: [your-superuser-username]
- Password: [your-superuser-password]
For regular testing, create a new account through the registration form.
TasteStack/
โโโ ๐ backend/ # Django REST API
โ โโโ accounts/ # User authentication & profiles
โ โโโ recipes/ # Recipe management
โ โโโ interactions/ # Social features (likes, comments)
โ โโโ media/ # User uploaded files
โ โโโ requirements.txt # Python dependencies
โโโ ๐ app/ # React application
โ โโโ src/
โ โ โโโ components/ # Reusable UI components
โ โ โโโ pages/ # Page components
โ โ โโโ services/ # API communication
โ โ โโโ contexts/ # React contexts (Auth, Theme)
โ โ โโโ utils/ # Utility functions
โ โโโ package.json # Node.js dependencies
โโโ ๐ docker/ # Docker configurations
โ โโโ run-sqlite.bat # Start with SQLite
โ โโโ run-postgres.bat # Start with PostgreSQL
โ โโโ DOCKER_GUIDE.md # Docker usage guide
โโโ ๐ scripts/ # Automation scripts
โ โโโ setup.bat # Project setup
โ โโโ start-dev.bat # Start dev servers
โโโ ๐ docs/ # Documentation
โโโ ๐ tests/ # Test files
โโโ README.md # This file
๐ See PROJECT_STRUCTURE.md for detailed structure
๐ See DEPLOYMENT_STATUS.md for deployment information
# Run server
python manage.py runserver
# Make migrations
python manage.py makemigrations
# Apply migrations
python manage.py migrate
# Create superuser
python manage.py createsuperuser
# Run tests
python manage.py test# Start development server
npm start
# Build for production
npm run build
# Run tests
npm test
# Eject (not recommended)
npm run ejectBase URL: https://shksabbir7.pythonanywhere.com
// Registration
{
"username": "your_username",
"email": "your@email.com",
"password": "your_password",
"password_confirm": "your_password"
}
// Login (uses email, not username)
{
"email": "your@email.com",
"password": "your_password"
}POST /api/auth/register/- User registrationPOST /api/auth/login/- User loginPOST /api/auth/forgot-password/- Request password resetPOST /api/auth/reset-password/- Reset password with tokenGET /api/auth/user/- Get current user profilePUT /api/auth/user/update/- Update user profile
GET /api/recipes/- List recipes with paginationPOST /api/recipes/- Create new recipeGET /api/recipes/{id}/- Get recipe detailsPUT/PATCH /api/recipes/{id}/- Update recipeDELETE /api/recipes/{id}/- Delete recipe
POST /api/recipes/{id}/rate/- Rate recipe (1-5 stars)POST /api/recipes/{id}/comment/- Add commentGET /api/recipes/{id}/comments/- Get recipe commentsPOST /api/recipes/{id}/like/- Like/unlike recipe
GET /api/auth/profile/{id}/- Get public user profilePOST /api/auth/follow/{id}/- Follow/unfollow userGET /api/auth/dashboard-stats/- Get dashboard statisticsGET /api/auth/recent-activity/- Get recent user activity
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Test the live API endpoints:
# Test API status
curl https://shksabbir7.pythonanywhere.com/
# Get recipes
curl https://shksabbir7.pythonanywhere.com/api/recipes/
# Register new user
curl -X POST https://shksabbir7.pythonanywhere.com/api/auth/register/ \
-H "Content-Type: application/json" \
-d '{"username":"testuser","email":"test@example.com","password":"testpass123","password_confirm":"testpass123"}'
# Login
curl -X POST https://shksabbir7.pythonanywhere.com/api/auth/login/ \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com","password":"testpass123"}'For enhanced development experience:
# Backend development tools
cd backend
pip install -r requirements-dev.txt
# This includes:
# - django-debug-toolbar (debugging)
# - pytest (testing)
# - black (code formatting)
# - flake8 (linting)
# - mypy (type checking)For production deployment:
# Install production dependencies
pip install -r requirements-prod.txt
# This includes:
# - gunicorn (production server)
# - psycopg2 (PostgreSQL)
# - redis (caching)
# - sentry-sdk (error tracking)# Code formatting and linting
black .
isort .
flake8
# Testing
pytest
python manage.py test
# Database management
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser# Development
npm start # Start development server
npm run build # Build for production
npm test # Run tests
npm run test:coverage # Run tests with coverage
# Code quality
npm run lint # Lint code
npm run lint:fix # Fix linting issues
npm run format # Format code with prettier
npm run type-check # TypeScript type checking
# Analysis
npm run build:analyze # Analyze bundle size
npm run deps:update # Update dependencies
npm run deps:audit # Security audit# Python not found
# Solution: Ensure Python 3.9+ is installed and in PATH
python --version
# pip not found
# Solution: Reinstall Python with pip included
python -m ensurepip --upgrade
# Virtual environment issues
# Solution: Recreate virtual environment
rm -rf venv
python -m venv venv
source venv/bin/activate # or venv\Scripts\activate on Windows# Node.js version too old
# Solution: Update to Node.js 18.0+
node --version
# npm permission errors (macOS/Linux)
sudo chown -R $(whoami) ~/.npm
# Clear npm cache
npm cache clean --force
# Delete node_modules and reinstall
rm -rf node_modules package-lock.json
npm install# Port 8000 already in use
# Solution: Kill process or use different port
lsof -ti:8000 | xargs kill -9 # macOS/Linux
netstat -ano | findstr :8000 # Windows
# Database migration issues
python manage.py makemigrations --empty appname
python manage.py migrate --fake
# CORS errors
# Check CORS_ALLOWED_ORIGINS in settings.py
# Ensure frontend URL is included# Port 3000 already in use
# Set custom port
PORT=3001 npm start
# Build failures
# Clear React cache
npm start -- --reset-cache
# Module resolution errors
rm -rf node_modules package-lock.json
npm install# Ensure virtual environment is activated
source venv/bin/activate # or venv\Scripts\activate
pip install -r requirements.txt# In backend/settings.py, ensure:
CORS_ALLOWED_ORIGINS = [
"http://localhost:3000",
"http://127.0.0.1:3000",
]# Try python3 instead
python3 --version
# Or create an alias
alias python=python3# Enable Django Debug Toolbar
# Add to requirements-dev.txt: django-debug-toolbar
# In settings.py (development only):
if DEBUG:
INSTALLED_APPS += ['debug_toolbar']
MIDDLEWARE += ['debug_toolbar.middleware.DebugToolbarMiddleware']# Analyze bundle
npm run build:analyze
# Consider code splitting and lazy loading
# Use React.lazy() for components# PowerShell execution policy issues
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# Python path issues
py -0p # List Python installations
py -3.9 -m venv venv # Use specific Python version# Homebrew Python issues
brew install python@3.9
brew link python@3.9
# XCode command line tools
xcode-select --install# Ubuntu/Debian
sudo apt update
sudo apt install python3.9 python3.9-venv python3-pip nodejs npm
# CentOS/RHEL
sudo yum install python39 python39-pip nodejs npmWhen reporting issues, please include:
# System information
python --version
node --version
npm --version
echo $OS # or echo %OS% on Windows
# Error logs
# Backend: Django server console output
# Frontend: Browser console (F12)
# Configuration
# Contents of .env files (without sensitive data)
# Package versions from requirements.txt and package.json- ๐ง Email: support@tastestack.com
- ๐ Issues: GitHub Issues
- ๐ Documentation: Full Documentation
- ๐ฌ Community: Discussions
# Backend (Terminal 1)
cd backend
source venv/bin/activate
python manage.py runserver
# Frontend (Terminal 2)
cd app
npm start# SQLite (simple)
docker\run-sqlite.bat
# PostgreSQL (production)
docker\run-postgres.bat
# Or manually
docker-compose -f docker\docker-compose.postgres.yml up --build# Backend production server
cd backend
pip install gunicorn
gunicorn tastestack.wsgi:application --bind 0.0.0.0:8000
# Frontend production build
cd frontend
npm run build
npx serve -s build -l 3000# backend/.env
DEBUG=False
ALLOWED_HOSTS=yourdomain.com,www.yourdomain.com
SECRET_KEY=your-production-secret-key
DATABASE_URL=postgresql://user:pass@localhost/dbname
REDIS_URL=redis://localhost:6379- โ User Authentication System (Registration, Login, Password Reset)
- โ Recipe CRUD Operations
- โ Rating & Comment System
- โ Responsive UI Design with Modern Gradients
- โ Advanced Search & Filter Functionality
- โ User Dashboard with Statistics
- โ Follow System & Social Features
- โ Profile Management with Image Upload
- โ Professional About Page
- โ Modern Logo and Navigation
- โ Dark/Light Mode Theme Toggle
- โ Docker Containerization (SQLite/PostgreSQL)
- โ Professional Project Structure
- โ Automated Setup Scripts
TasteStack - Bringing food lovers together, one recipe at a time ๐ฝ๏ธโจ

