Skip to content

QuickFinderOrg/QuickFinder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QuickFinder

QuickFinder is a web application that helps students find groups that fit their preferences, communicate with their group members via automatically created Discord channels and for teachers to set rules and manage groups for their courses.

Setup

  1. Install the .NET 8 SDK.
  2. Clone the QuickFinder Github Repository
  3. Navigate to the location of the cloned repository
  4. Run "dotnet restore" to install the necessary packages from NuGet
  5. Run "dotnet ef database update" to create and seed a SQLLite database

Run Locally In Development Mode

Running with hot-reload on file changes:

dotnet watch

Running without hot-reload:

dotnet run

Run Test Suite

cd .\group-finder.Tests\
dotnet test

Building for production

Building for to to the Unix system.

dotnet publish -c Release -r linux-x64 -o publish

Configuration

The project can be configured using ASP.NET Configuration, which includes environment variables, dotnet user-secrets and appsettings.json files.

Do not commit any variables labelled "secret" to your git repository. Use the .NET secrets manager or environment variables instead.

Discord

Using the Discord integration requires you to have a Discord account, a Discord Application and at least one Discord server for students to join.

Create an application on the Discord Developer Pages. Store the client id, secret and bot token for later. For authentication, add redirect urls for the domains the application is hosten on, and the path /LoginDiscord. Example: https://localhost:5056/LoginDiscord.

To create a discord server, press the "+" in at the bottom of the server list in the Discord client. To get the server id, you first enable developer mode inside the Discord Client's settings. Afterward, right click the server icon in the server list and click the "Copy Server ID" button. Invite the created bot to the server and give it accesss to creating and removing channels.

Add these values to your configuration. Values under "DiscordAuth" are required for users to sign up with Discord. Without it you will only be able to log into the admin account and other test accounts. Values under "Discord" are used for the Discord server management. See the example below.

"Discord": {
    "ClientId": "",
    "ServerId": "",
    "BotToken": "secret"
  },
  "DiscordAuth": {
    "ClientId": "",
    "ClientSecret": "secret",
  },

Excerpt from the appsettings.json file.

Disable scheduler

Disabling the scheduler may be necessary to debugging, to have full control over when task are executed. It can be disabled by setting the configuration variable "DisableScheduler" to "true". It is recommended to use the .NET user secrets manager for this, to make sure the variable is not pushed to the repository.

Known Issues

C# sometimes leaves behind temporary files or otherwise caches invalid data after compile. This can lead to build errors. To fix this, delete the /bin and /obj folders. These can be found in the root folder and inside the group_project.Tests folder.

About

Find group members for group projects using a matchmaking system.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages