Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/teakulo/eventime-app

Eventime App is an event management platform using Angular, Spring Boot, Flask, and PostgreSQL. It offers AI-powered event recommendations, social features, and secure authentication. Users can manage events, chat with a chatbot, and view their calendar.
https://github.com/teakulo/eventime-app

ai angular authentication calendar chatbot event flask lemmatization nlp nltk postgresql spacy springboot

Last synced: 2 months ago
JSON representation

Eventime App is an event management platform using Angular, Spring Boot, Flask, and PostgreSQL. It offers AI-powered event recommendations, social features, and secure authentication. Users can manage events, chat with a chatbot, and view their calendar.

Awesome Lists containing this project

README

        

# Eventime App

## Overview

This project is an AI-enhanced web application designed for organising and recommending events. The system leverages Natural Language Processing (NLP) techniques for text processing and provides functionalities for creating, editing, and viewing events from a database. The application features a calendar for event management and includes a robust backend for authentication and data handling.

## Features

- **Event Management**: Users can create, edit, and view events.
- **Calendar Integration**: A calendar view to manage events efficiently.
- **NLP Processing**: Utilises various NLP techniques such as NLTK WordNet for dictionary-based approaches, lemmatisation, and synonyms.
- **Authentication**: Secure login and signup functionalities.
- **AI-Powered Recommendations**: Events are recommended based on text processing using NLP techniques.
- **Testing**: Postman used for testing API endpoints.
- **Chatbot**: Chat with a chatbot to get event recommendations.

## Technologies Used

### Frontend

- **Angular**: Framework for building the user interface.
- **Angular Material**: UI components for Angular.
- **Bootstrap/NGX-Bootstrap**: For responsive design and additional UI components.
- **Angular OAuth2 OIDC**: For handling authentication.
- **Date-Fns**: Library for date manipulation.
- **JWT-Decode**: Library for decoding JSON Web Tokens.

### Backend

- **Spring Boot**: Framework for building the backend application.
- **Spring Security**: For authentication and authorisation.
- **PostgreSQL**: Database for storing user and event data.
- **HikariCP**: Connection pooling for PostgreSQL.
- **Lombok**: For reducing boilerplate code.
- **JJWT**: For JWT creation and parsing.
- **Commons Validator**: For data validation.

### NLP and AI

- **SpaCy**: Library for advanced NLP in Python.
- **NLTK WordNet**: For dictionary-based approaches and synonyms.
- **Lemmatisation**: Reducing words to their base or root form.

### Chatbot

- **Flask**: Python framework for the chatbot.
- **SpaCy**: For NLP in chatbot.
- **NLTK**: For additional NLP tasks.

## Application Structure

### Backend

- **Spring Boot Application**: Manages the business logic, data access, and authentication.
- **Repositories**: Interfaces for data access using Spring Data JPA.
- **Services**: Business logic for handling event and user operations.
- **Controllers**: RESTful endpoints for frontend communication.
- **Security**: Configured using Spring Security for login and signup processes.

### Frontend

- **Angular Application**: Manages the user interface and communicates with the backend via RESTful APIs.
- **Components**: Modular UI components for managing events and user interactions.
- **Services**: Angular services for handling API calls and business logic on the client side.
- **Routing**: Configured for navigating between different views within the application.

### Chatbot

- **Flask Application**: Manages the chatbot interactions.
- **Endpoints**: RESTful endpoints for chatbot communication.
- **NLP Processing**: Uses SpaCy and NLTK for processing user input.

## Getting Started

### Prerequisites

- **Node.js**: Required for running Angular.
- **Java**: Required for running Spring Boot.
- **Python 3.9**: Required for running NLP tasks with SpaCy and Flask.
- **PostgreSQL**: Database setup.
- **Flask**: Required for running the chatbot.

### Installation

1. **Clone the Repository**:
```sh
git clone https://github.com/teakulo/ETfrontend.git
```

2. **Backend Setup**:
- Navigate to the backend directory.
- Configure the database settings in `application.yml`.
- Run the Spring Boot application:
```sh
./mvnw spring-boot:run
```

3. **Frontend Setup**:
- Navigate to the frontend directory.
- Install dependencies:
```sh
npm install
```
- Run the Angular application:
```sh
ng serve
```

4. **Chatbot Setup**:
- Navigate to the chatbot directory.
- Install Python dependencies:
```sh
pip install -r requirements.txt
```
- Run the Flask application:
```sh
flask run
```

### Usage

- **Access the application** at `http://localhost:4200`.
- **Sign up or log in** to start managing your events.
- **Chat with the chatbot** to get event recommendations.
- **See who is attending** events and add friends.
- **Edit your profile** information.
- **View events you are attending** on your calendar.
- **Scroll through the homepage** to see various events.