Skip to content

nelsonmandeladev/elocate

Repository files navigation

ELOCATE

ELOCATE is an open-source project designed to help people find and share places easily. It features an interactive map, location details, and user-generated content, providing a comprehensive platform for discovering new locations around you.

Table of Contents

  1. Features
  2. Tools and Packages
  3. Environment Variables
  4. Getting Started
  5. Deployment
  6. Contributing
  7. License

Features

  • Map Listing: The home page features a map listing all locations within a 5km radius by default, extendable to 10km.
  • Reverse Geocoding: Drag a marker on the map to get potential addresses using the Google Geocoding API. Users can create a location with an additional description.
  • Location List View: Users can view available locations in a list format as an alternative to the map view.
  • Location Details: View detailed information about a specific location, including full address, description, date added, and user details. Share locations on social media and get directions via Google Maps.
  • File Uploading: Users can upload files using Vercel Blob or AWS S3 storage.
  • Multilingual Support: Both server and client-side translations in French and English.
  • Session Management: Easy login or account creation using Google sign-in via NextAuth.js.

Tools and Packages

Environment Variables

Create a .env file at the root of your project and add the following variables:

AUTH_SECRET=
AUTH_GOOGLE_ID=
AUTH_GOOGLE_SECRET=
AUTH_FACEBOOK_ID=
AUTH_FACEBOOK_SECRET=
AUTH_RESEND_KEY=
BLOB_READ_WRITE_TOKEN=
AWS_IDENTITY_POOL_ID=
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_REGION=
AWS_BUCKET_NAME=
NEXT_PUBLIC_BASE_URL=
DATABASE_URL=
NEXT_PUBLIC_GOOGLE_MAPS_API_KEY=
NEXT_PUBLIC_GOOGLE_MAPS_ID=
NEXT_PUBLIC_BASE_SITE_URL=

Getting Started

Prerequisites

Before starting, ensure you have the following configured:

  1. AWS S3: Setup Guide
  2. Vercel Blob Storage: Setup Guide
  3. MongoDB: Setup Guide
  4. Google Maps API: Setup Guide
  5. OAuth API Key and Secret: Google OAuth Setup

Installation

  1. Clone the project:

    git clone https://github.com/nelsonmandeladev/locate-elecam
  2. Change to the project directory:

    cd place-finder
  3. Install the dependencies:

    npm install
  4. Generate the Prisma client:

    npm run db:gen
  5. Push the Prisma schema to your database:

    npm run db:push
  6. Start the development server:

    npm run dev

Deployment

Deploy your project on Vercel by following their deployment documentation.

Contributing

We welcome contributions! To contribute, follow these steps:

  1. Fork the repository.
  2. Create a new branch: git checkout -b my-feature-branch
  3. Make your changes.
  4. Commit your changes: git commit -m 'Add some feature'
  5. Push to the branch: git push origin my-feature-branch
  6. Submit a pull request.

For major changes, please open an issue first to discuss what you would like to change.

License

This project is licensed under the MIT License. Feel free to use it for any use case.


If you encounter any issues or have questions, please feel free to open an issue on the GitHub repository.

Happy coding!