Skip to content

anakin-dabir/evently-23

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Introduction

Evently is a web application designed to provide users with a convenient platform for creating, managing, and scheduling events dynamically. This application aims to simplify the process of organizing and participating in various events, enhancing user engagement and experience.

Project Features

  1. User Registration and Authentication:

    • Secure registration and login functionality for users to access the application.
  2. Event Creation and Management:

    • Create new events with essential details like title, description, date, time, poster, and duration.
    • Support for both one-time and recurring event schedules.
    • Edit and delete events as needed.
    • User-friendly interface for efficient event management.
  3. Event Search and Filtering:

    • Search events based on keywords (title, description) or date.
    • Implement filters to refine event searches using categories or tags.
    • Visually appealing display of search results.
  4. Event Participation:

    • Enable users to join events with a "Join" button.
    • Limit the number of participants for each event.
    • Display a participant list with status (confirmed, pending).
  5. Notifications and Reminders:

    • Notification system for upcoming events, changes, and cancellations.
    • Reminders via email or push notifications based on user preferences.
    • Timely notifications with relevant event details.
    • Notify users when an event is created related to their interest tags.
  6. Event Feed:

    • View a feed of events created by other users.
    • Display event details, including name, date, time, duration, poster, and type.
    • Filter events based on preferences and interests.
    • Sort events by popularity, date, or proximity.
  7. Wishlist or Favorite Feature:

    • Allow users to save events to their wishlist or favorite list.
    • Easy access to the saved events for future reference.
    • Option to remove events from the wishlist or favorite list.
  8. User Experience:

    • Intuitive and responsive user interface with an appealing design.
    • Validation and error handling for user inputs.
    • Performance optimization for a large number of concurrent users.
    • Compatibility across web browsers and devices.

Run Locally

  • Clone the project
  git clone https://github.com/anakin-dabir/evently-23.git
  • Go to the project directory
  cd evently-23
  • Install dependencies in both server and client folders
  cd frontend && yarn & cd server && yarn & cd socket && yarn
  • You need the following environment variables to add on server in .env file:
    1. MONGO_URI mongodb url
    2. IMGBB_API_KEY API key for imbb
    3. NODEMAILER_EMAIL email for nodemailer
    4. NODEMAILER_PASSWORD password for nodemailer
    5. JWT_SECRET secret token for JWT creation
  • and for frontend .env file:
    1. VITE_SOCKET_URI socket url
    2. VITE_BASE_URI server url
    3. VITE_GOOGLE_LOCATOR_API_KEY google locator API key
    4. VITE_CLOUDINARY_UPLOAD_PRESET upload preset for cloudinary
    5. VITE_CLOUDINARY_CLOUD_NAME your cloud name for cloudinary
    • Start frontend, backend and socket side separately by navigating to respective dirs and:
      yarn dev

    API Endpoints

    • Authentication

      HTTP Endpoints Action
      GET /auth/user To get user creds
      GET /auth/whishlist To retrieve wishlist
      POST /auth/register To register a new user account
      POST /auth/login To login to already existing user
      POST /auth/add/:id To add event to wishlist
      POST /auth/remove/:id To remove event from wishlist
    • Events

      HTTP Endpoints Action
      GET /event To retrieve all events
      GET /event/myevents To retrieve all of current user events
      GET /event/:id To retrieve data of current event
      POST /event To create a new event
      POST /event/join/:id To add user to event
      PUT /event/:id To edit an event
      DELETE /event/:id To delete an existing event
    • Notifications

      HTTP Endpoints Action
      GET /notification To retrieve all notifications
      POST /notification To send a new notification
      PATCH /notification To mark notifications as read