Welcome to FindMyRoomie’s documentation!

FindMyRoomie is a Web Application that provides a platform for lonely wolves (NC State students) to find roommates of their preference. The stakes are high when it comes to finding your best roommate because this relationship starts with a living relationship 😅. We understand how stressful this can be, especially if you are moving to a new city or country. FindMyRoomie is a one-stop solution to your roommate finding needs. Our software has functionalities that allow you to filter and choose your ideal roommate. But if that is too much work for you, we also provide roommate suggestions based on your preferences! Any NC State student could sign up with their NC State Email address from any corner of the world on our website and begin searching for roommates.

Seed users

class base.management.commands.seed_users.Command(stdout=None, stderr=None, no_color=False, force_color=False)

Django manage.py command

add_arguments(parser)

Entry point for subclassed commands to add custom arguments.

handle(*args, **options)

The actual logic of the command. Subclasses must implement this method.

class base.management.commands.seed_users.ProfileFactory(**kwargs)

Faker Factory for Profile Model

class base.management.commands.seed_users.UserFactory(**kwargs)

Faker Factory for User model

Matching Algorithm

base.matching.matchings(current_user)

Generate matches using Manhattan Distance Algorithm

base.matching.similarity_score(gender, degree, diet, country, course)

Calculate the similarity score

Profile filter

class base.filters.ProfileFilter(data=None, queryset=None, *, request=None, prefix=None)

Filter to filter the queryset for profiles

Forms

class base.forms.ProfileForm(*args, **kwargs)

Build the User Profile Form

property media

Return all media required to render the widgets on this form.

class base.forms.SignUpForm(*args, **kwargs)

Build Sign up Form

clean()

Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.

property media

Return all media required to render the widgets on this form.

User Manager model

class base.managers.CustomUserManager(*args, **kwargs)

Custom user model manager where email is the unique identifiers for authentication instead of usernames.

create_superuser(email, password, **extra_fields)

Create and save a SuperUser with the given email and password.

create_user(email, password, **extra_fields)

Create and save a User with the given email and password.

Profile model

class base.models.CustomUser(*args, **kwargs)

Custom User Model

exception DoesNotExist
exception MultipleObjectsReturned
save(*args, **kwargs)

Save the current instance. Override this in a subclass if you want to control the saving process.

The ‘force_insert’ and ‘force_update’ parameters can be used to insist that the “save” must be an SQL insert or update (or equivalent for non-SQL backends), respectively. Normally, they should not be set.

username = None
class base.models.Profile(*args, **kwargs)

Model for User Profile

exception DoesNotExist
exception MultipleObjectsReturned
PREF_COURSE_CHOICES = (('No Preference', 'No Preference'), ('Computer Science', 'Computer Science'), ('Computer Engineering', 'Computer Engg.'), ('Electrical Engineering', 'Electrical Engg.'), ('Mechanical Engineering', 'Mechanical Engg.'))

User Profile Model

base.models.create_user_profile(sender, instance, created, **kwargs)

Create User Profile

base.models.save_user_profile(sender, instance, **kwargs)

Save User Profile

Utility Functions

base.utils.check_ncsu_email(email)

Check if the given email belongs to NCSU email id.

Configuration

ASGI config for config project.

It exposes the ASGI callable as a module-level variable named application.

For more information on this file, see https://docs.djangoproject.com/en/3.1/howto/deployment/asgi/

Django settings for config project.

Generated by ‘django-admin startproject’ using Django 3.1.3.

For more information on this file, see https://docs.djangoproject.com/en/3.1/topics/settings/

For the full list of settings and their values, see https://docs.djangoproject.com/en/3.1/ref/settings/

config URL Configuration

The urlpatterns list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/3.1/topics/http/urls/ Examples: Function views: 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: path(‘’, views.home, name=’home’) Class-based views: 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path(‘’, Home.as_view(), name=’home’) Including another URLconf: 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path(‘blog/’, include(‘blog.urls’))

WSGI config for config project.

It exposes the WSGI callable as a module-level variable named application.

For more information on this file, see https://docs.djangoproject.com/en/3.1/howto/deployment/wsgi/

Indices and tables

Authors:

Rohit Geddam, Arun Kumar Ramesh, Kiron Jayesh, Shandler Mason, and Sai Krishna Teja Varma Manthena.

Version:

v3.1 of 2022/10/08