A full-stack social media application that allows users to share and interact with memorable experiences. Users can create, and like, on posts about their special moments.
Memories is a MERN stack application where users can post and share their experiences, adventures, and special moments with others. Each memory can include text, images, and tags, allowing for rich content sharing.
-
User Authentication
- Secure signup and login
- JWT-based authentication
- Google OAuth integration (not yet implemented)
-
Post Management
- Create new memory posts
- Upload images
- Edit existing posts
- Add tags to posts
-
Social Features
- View other users' memories
- Search memories by tags
- Real-time updates
- Node.js (v14 or higher)
- MongoDB database
- npm or yarn package manager
- Clone the repository
git clone https://github.com/your-username/memories.git
cd memories
- Install dependencies for both frontend and backend
# Install server dependencies
cd server
npm install
# Install client dependencies
cd ../client
npm install
- Set up environment variables
# In server directory, create a .env file
PORT=5000
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
# In client directory, create a .env file
REACT_APP_API_URL=http://localhost:5000
- Start the development servers
# Start server (from server directory)
npm run dev
# Start client (from client directory)
npm start
memories/
├── client/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── actions/
│ │ ├── reducers/
│ │ └── api/
│ └── public/
└── server/
├── controllers/
├── models/
├── routes/
├── middleware/
└── config/
POST /api/users/signup - Register new user
POST /api/users/signin - Login user
POST /api/posts - Create new post
GET /api/posts - Fetch all posts
PATCH /api/posts/:id - Update post
DELETE /api/posts/:id - Delete post
PATCH /api/posts/:id/like - Like post
- JWT-based authentication system
- Secure password hashing
- Protected routes
- Create, read, update, and delete posts
- Image upload functionality
- Tag system for categorization
- Like/unlike functionality
- Responsive design
- Material UI components
- Tailwind CSS styling
- Modern and intuitive layout
- Fork the repository
- Create your 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.
- Real-time notifications
- User profiles
- Follow/unfollow functionality
- Direct messaging
- Post sharing
- Enhanced search functionality