Swipe right for laughs, left for meh! Memeder is a Tinder-like application for memes where you can discover, rate, and enjoy the best memes on the internet.
To be eligible for MLSA X HACKTOBERFEST: Register here: https://register.mlsakiit.com/ Star this repo: https://github.com/keploy/keploy
Memeder combines the addictive swiping mechanism of dating apps with the endless entertainment of memes. Users can swipe through a curated collection of memes, build their personal collection of favorites, and discover new content tailored to their humor preferences.
- React.js - Modern UI library with hooks
- React Router - Client-side routing
- Tailwind CSS - Utility-first CSS framework
- Vite - Fast build tool and dev server
- Node.js - JavaScript runtime
- Express.js - Web application framework
- MongoDB - NoSQL database with Mongoose ODM
- JWT - Secure authentication tokens
- Express Validator - Input validation middleware
Make sure you have the following installed:
- Node.js (v14 or higher)
- MongoDB (local installation or cloud instance)
- npm or yarn package manager
- Git for version control
git clone https://github.com/MLSAKIIT/memeder.git
cd memeder# Navigate to backend directory
cd backend
# Install dependencies
npm install
# Create environment file
cp .env.example .env
# Edit .env with your configuration
# PORT=3000
# MONGODB_URI=mongodb://localhost:27017/memeder
# JWT_SECRET=your-super-secret-jwt-key
# JWT_EXPIRES_IN=7d
# NODE_ENV=development
# CORS_ORIGIN=http://localhost:5173
# Start the backend server
npm run devBackend will run on http://localhost:3000
# Open new terminal and navigate to frontend directory
cd frontend
# Install dependencies
npm install
# Start the frontend development server
npm run devFrontend will run on http://localhost:5173
Open your browser and visit http://localhost:5173 to start swiping memes!
memeder/
βββ README.md # This file
β
βββ frontend/ # React frontend application
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ assets/ # Static assets
β β βββ ...
β βββ public/ # Public assets
| |ββ .gitignore # Git ignore rules
β βββ package.json # Frontend dependencies
β βββ README.md # Frontend-specific documentation
βββ backend/ # Express backend API
|ββ .gitignore # Git ignore rules
βββ routes/ # API route handlers
βββ models/ # Database models
βββ middleware/ # Custom middleware
βββ lib/ # Database connection
βββ utils/ # Utility functions
βββ package.json # Backend dependencies
βββ README.md # Backend-specific documentation
For development convenience, you can run both frontend and backend:
# Terminal 1 - Backend
cd backend && npm run dev
# Terminal 2 - Frontend
cd frontend && npm run devCreate backend/.env:
PORT=3000
MONGODB_URI=mongodb://localhost:27017/memeder
JWT_SECRET=your-super-secret-jwt-key
JWT_EXPIRES_IN=7d
NODE_ENV=development
CORS_ORIGIN=http://localhost:5173The frontend automatically connects to http://localhost:3000 for API calls in development mode.
npm run dev # Start development server with nodemon
npm start # Start production server
npm test # Run tests (placeholder)npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLintWe welcome contributions from the community! Here's how you can help make Memeder even better:
-
Fork the Repository
- Click the "Fork" button at the top right of this repository
- This creates your own copy of the project
-
Clone Your Fork
git clone https://github.com/YOUR-USERNAME/memeder.git cd memeder -
Create a Feature Branch
git switch -C feature/your-feature-name # or for bug fixes git switch -C fix/your-bug-fix -
Set Up Development Environment
# Install dependencies for both frontend and backend cd backend && npm install cd ../frontend && npm install
-
Make Your Changes
- Write clean, readable code
- Follow existing code style and patterns
- Add comments for complex logic
- Test your changes thoroughly
-
Commit Your Changes
git add . git commit -m "Add: brief description of your changes"
Commit Message Convention:
Add:for new featuresFix:for bug fixesUpdate:for improvements to existing featuresDocs:for documentation changesStyle:for formatting changesRefactor:for code refactoring
-
Push to Your Fork
git push origin feature/your-feature-name
-
Create a Pull Request
- Go to your fork on GitHub
- Click "Compare & pull request"
- Provide a clear title and description
- Link any related issues
- Submit the pull request
- Code Quality: Write clean, maintainable code with proper error handling
- Testing: Test your changes across different browsers and devices
- Documentation: Update relevant documentation for new features
- Respect: Be respectful and constructive in all interactions
- Issues: Check existing issues before creating new ones
- π Bug Fixes - Help identify and fix issues
- β¨ New Features - Add exciting new functionality
- π± UI/UX Improvements - Enhance user experience
- π§ Performance - Optimize app performance
- π Documentation - Improve project documentation
- π§ͺ Testing - Add automated tests
- Frontend README - React app documentation
- Backend README - API documentation
- React Documentation - Learn React
- Express.js Guide - Backend framework
- MongoDB Manual - Database documentation
- Tailwind CSS - CSS framework
- Push your code to GitHub
- Connect your repository to Vercel
- Vercel will automatically detect the frontend and deploy
- Push your code to GitHub
- Connect to Railway or Heroku
- Set environment variables in the dashboard
- Deploy automatically on push to main
Make sure to set these in your deployment platform:
MONGODB_URI- Your MongoDB connection stringJWT_SECRET- A secure secret keyCORS_ORIGIN- Your frontend domainNODE_ENV=production
If you have any questions or need help:
- π§ Email: Create an issue on GitHub
- π¬ Discussions: Use GitHub Discussions for questions
- π Bug Reports: Create detailed issue reports
- π‘ Feature Requests: Suggest new features via issues
Happy Swiping! πβ¨