Pydeia
Overview
Pydeia is a comprehensive web application and server-side data recommendation system built using TypeScript, Python, React, and Flask. Its primary purpose is to provide personalized university recommendations based on user preferences and profile information, addressing the challenge of matching students with suitable educational opportunities. The system leverages a data-driven recommendation engine and integrates with external services like OpenAI for natural language processing. Key features include a dynamic UI powered by React and Vite, a recommendation system that dynamically adapts to user input, and seamless integration with OpenAI for advanced natural language processing capabilities. The project architecture is based on microservices, with the server-side implemented in Python and the client-side using React and Vite. The server handles API requests and interactions with various services, while the client manages the user interface and communication with the server. The main technologies used are TypeScript, Python, React, Flask, Vite, and Tailwind CSS, with the project employing modern JavaScript/TypeScript patterns such as TypeScript configuration, Vite configuration, and React routing. The target users are students and educators looking for personalized university recommendations, and the use cases include matching students with suitable educational opportunities, providing recommendations based on user preferences, and integrating with external services for advanced functionality.
Architecture
Pattern: Microservices
File Reference
| File | Purpose |
|---|---|
server/requirements.txt |
Lists the Python dependencies for the server. |
server/server.py |
This file is a Flask web application server for a data recommendation system, handling API requests and interactions with various services like... |
website/components.json |
Defines aliases for components and utilities used in the website. |
website/eslint.config.js |
Configures ESLint for the project, including rules and extensions. |
website/index.html |
A static HTML file that sets up the basic structure and metadata for the website. |
website/package.json |
Manages project dependencies and scripts for the Vite React application. |
website/postcss.config.js |
Configures PostCSS plugins to be used with Tailwind CSS. |
website/src/App.css |
Styling for the root component of the Vite React application. |
website/src/App.tsx |
The main entry point for the Vite React application, providing routing and query client context. |
website/src/components/Sidebar.tsx |
Provides a sidebar component for the website, including a logo, conversation messages, and a scrollable area. |
website/src/components/ui/button.tsx |
Provides a button component with various styles and behaviors. |
website/src/components/ui/input.tsx |
Defines a custom input component with basic styling and behavior. |
website/src/components/ui/label.tsx |
Defines a custom label component using Radix UI's LabelPrimitive and class-variance-authority for styling. |
website/src/components/ui/popover.tsx |
Defines a custom popover component using Radix UI's PopoverPrimitive. |
website/src/components/ui/select.tsx |
Defines a custom select component with basic functionality and styling. |
website/src/components/ui/separator.tsx |
Defines a custom separator component using Radix UI's SeparatorPrimitive. |
website/src/index.css |
Tailwind CSS configuration and base styles for the Vite React application. |
website/src/main.tsx |
The main entry point for the Vite React application. |
website/src/pages/Index.tsx |
This file defines the main component for the Index page, which includes state management for messages, conversation state, and speech recognition... |
website/src/pages/Results.tsx |
Displays university recommendations based on user preferences and profile. |
website/tailwind.config.ts |
Configures Tailwind CSS for the project, including content, theme, and prefixes. |
website/tsconfig.app.json |
Configures TypeScript options for the project, including compiler options and references. |
website/tsconfig.json |
Configures TypeScript options for the project, including compiler options and references. |
website/tsconfig.node.json |
Configures TypeScript compiler options for the Node.js environment. |
website/vite.config.ts |
Configures Vite to work with React and sets up server configuration and plugins. |
Repository Info
- URL: https://github.com/sstraccialini/Pydeia.git
- Languages: TypeScript (TSX): 73.8%, Python: 18.4%, TypeScript: 4.7%, JavaScript: 1.4%, CSS: 1.2%
- Config Files: website/package.json, server/requirements.txt