animina-dating / animina

👫❤️ ANIMINA Dating Platform
https://animina.de
Other
13 stars 6 forks source link

ANIMINA Dating Platform

ANIMINA is a web based dating platform. In case you have a question do not hesitate to contact Stefan Wintermeyer sw@wintermeyer-consulting.de

Screenshot of a demo ANIMINA profile

[!WARNING] The current version a beta version. We appreciate all bug reports!

Please do submit bug reports or feature requests with an issue.

[!NOTE] Project founder Stefan Wintermeyer gave a (German) talk about the first ANIMINA Beta at FrOSCon.

ANIMINA Installation Guide for Developers

What we assume:

[!IMPORTANT] If you wish to disable ML features (e.g., because of slow hardware), add DISABLE_ML_FEATURES=true before mix and iex commands.

Install Dependencies

We use asdf to handle the Elixir and Erlang version. You don't have to use it but in our opinion it is the best solution.

Clone the Project

Set Up the Environment

Install Dependencies

Database Setup

Seed the Database

This step is optional, but very useful for development and demo systems.

Start the Server

GO!

Open http://localhost:4000 in your browser. You can create a new profile and visit the demo accounts. And you can log into the demo accounts. The default password of the demo accounts is printed at the end of the list of demo accounts after running mix seed_demo_system.

User

The User resource is the center of the system. In the very beginning of the registration process we also use BasicUser.

User States

The following user states change their visibility across the system:

User Actions

To change the state of a user account use the following actions:

If you want to for example hibernate a user with the username 'wintermeyer' you can run the following in IEX

{:ok, user} = Animina.Accounts.User.get_by_username("wintermeyer") Animina.Accounts.User.hibernate(%{user_id: user.id})

User Roles

Enable Machine Learning features and servings

By default the server starts with ML features enabled. To disable running ML features:

LLM We Use for the AI Features

For development and on our production servers we use Ollama. So should you on your development system. For development we use the Llama3.1 (8B) LLM. Install Ollama and than run ollama run llama3.1:8b to download the needed files for the LLM. You can configure the used LLM in config/dev.exs (search for :llm_version).

Swoosh Mailbox Server

To access all the emails sent to the mailbox server, go to localhost:4000/dev/mailbox in your browser once the server is running. Once you register a new account, you can see the email sent to the mailbox server for account verification.

Thoughts about the Frontend

Keep it simple. Let's not use JavaScript everywhere. Better ask sw@wintermeyer-consulting.de first before diving into a JavaScript driven feature. Use Phoenix tools when possible.

We are doing a mobile first approach and use Tailwind CSS. Please don't forget a dark mode version when implimenting a new feature.

Submiting Code

Please read the CONTRIBUTING.md file.