Skip to content

a project which allows you to share any interesting memory that you've already had in your life and want to share with everyone

Notifications You must be signed in to change notification settings

emmamayne23/memories-app-MERN-stack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

Memories - Share Your Experiences

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.

Overview

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.

![Memories App Screenshot] memories app site

Features

  • 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

Technologies Used

React MongoDB Node.js Express.js Tailwind CSS Material UI JWT

Getting Started

Prerequisites

  • Node.js (v14 or higher)
  • MongoDB database
  • npm or yarn package manager

Installation

  1. Clone the repository
git clone https://github.com/your-username/memories.git
cd memories
  1. Install dependencies for both frontend and backend
# Install server dependencies
cd server
npm install

# Install client dependencies
cd ../client
npm install
  1. 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
  1. Start the development servers
# Start server (from server directory)
npm run dev

# Start client (from client directory)
npm start

Project Structure

memories/
├── client/
│   ├── src/
│   │   ├── components/
│   │   ├── pages/
│   │   ├── actions/
│   │   ├── reducers/
│   │   └── api/
│   └── public/
└── server/
    ├── controllers/
    ├── models/
    ├── routes/
    ├── middleware/
    └── config/

API Endpoints

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

Features in Detail

Authentication

  • JWT-based authentication system
  • Secure password hashing
  • Protected routes

Posts

  • Create, read, update, and delete posts
  • Image upload functionality
  • Tag system for categorization
  • Like/unlike functionality

User Interface

  • Responsive design
  • Material UI components
  • Tailwind CSS styling
  • Modern and intuitive layout

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Future Improvements

  • Real-time notifications
  • User profiles
  • Follow/unfollow functionality
  • Direct messaging
  • Post sharing
  • Enhanced search functionality

About

a project which allows you to share any interesting memory that you've already had in your life and want to share with everyone

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published