Skip to content

Latest commit

 

History

History
114 lines (80 loc) · 4.05 KB

README.md

File metadata and controls

114 lines (80 loc) · 4.05 KB

Ecosystem of Clubs

A centralized web platform designed for college clubs and students, where club admins can manage their clubs, events, and students can browse, register, and get personalized event recommendations based on their interests.

Features

  • Club and Event Management: Club admins can create, update, and manage their club profiles and events.
  • Event Registration: Students can view, register, and interact with event listings.
  • Interest-Based Recommendations: Using hash maps, the platform recommends events and clubs to students based on their selected interest tags (e.g., coding, dance, art).
  • User Roles: There are three roles in the platform:
    • Club Admins: Manage events and club profiles.
    • Web Admins: Oversee backend processes, including user management.
    • Students: Browse clubs and events, register, and interact with the platform.
  • Authentication System: Secure user registration and login for both students and admins, implemented with JWT (JSON Web Token).
  • Responsive Design: Currently, the platform is desktop browser-based, with plans for mobile responsiveness in future updates.

Tech Stack

  • Backend: Spring Boot
  • Frontend: JSP (Java Server Pages)
  • Database: MongoDB Atlas
  • Authentication: JWT (JSON Web Token)
  • Other Libraries: HashMap-based recommendation system for event suggestions

Installation

Prerequisites

  • Java 11 or higher
  • Maven
  • MongoDB Atlas account (for database)
  • IDE (e.g., IntelliJ IDEA, Eclipse)

Steps

  1. Clone the repository:
git clone https://github.com/yourusername/eco-college-clubs.git
  1. Navigate to the project folder:
cd eco-college-clubs
  1. Install dependencies:

    The project uses Maven for dependency management. If you're using an IDE, it will automatically download the necessary dependencies. Alternatively, you can run the following command:

mvn install
  1. Configure MongoDB:
    • Set up a MongoDB Atlas account and create a cluster.
    • Add your MongoDB connection string to application.properties.
spring.data.mongodb.uri=mongodb+srv://<username>:<password>@cluster0.mongodb.net/eco-clubs
  1. Run the application:

    You can run the application using the following Maven command:

mvn spring-boot:run

Alternatively, if you're using an IDE, you can run the EcosystemOfCollegeClubsApplication.java class.

  1. Access the platform:
    • Open a web browser and go to http://localhost:8080/.

Usage

  • For Students:

    • Browse events and clubs.
    • Register for events that interest you using the interest tag selection.
    • Get personalized event recommendations based on your selected tags.
  • For Club Admins:

    • Log in and manage your club profile.
    • Add, update, or delete events.
    • View student registrations for your events.
  • For Web Admins:

    • Oversee user registrations.
    • Approve or reject new clubs and admin requests.

Future Features

  • Event Calendar: A small calendar in the bottom right corner of club profiles to highlight dates of ongoing events for that month.
  • Mobile Responsiveness: Making the platform accessible on mobile devices.
  • Payment Integration: Enabling payments for event registrations (future consideration).
  • Social Media Integration: Option for clubs to manage their external social media accounts directly from the platform.

Contributing

If you'd like to contribute to the project, feel free to fork the repository and submit a pull request. Please follow these steps:

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

Acknowledgements

  • Thanks to the Spring Boot and MongoDB communities for their excellent documentation and support.
  • The inspiration for this project comes from the need to streamline the event management and student club engagement process.