Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/teakulo/eventime-app
- Owner: teakulo
- Created: 2024-06-09T17:07:00.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-06-15T13:45:46.000Z (6 months ago)
- Last Synced: 2024-10-14T04:02:55.425Z (2 months ago)
- Topics: ai, angular, authentication, calendar, chatbot, event, flask, lemmatization, nlp, nltk, postgresql, spacy, springboot
- Language: Java
- Homepage:
- Size: 3.41 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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.