Skip to content

A simple application that enables friends and colleagues create groups for messaging.

License

Notifications You must be signed in to change notification settings

Philipeano/SleekChat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SleekChat

Maintainability Test Coverage

Overview

SleekChat is a simple app that enables friends and colleagues create groups for messaging. This version of the app is a REST API that can be consumed with any HTTP client. The features are outlined below, while the full API documentation is available here.

Main features

  • New users can create accounts by signing up.
  • Registered users can access the app's features by signing in.
  • Authenticated users can create groups for messaging.
  • Group owners/administrators can add other users to their groups.
  • Group owners/administrators can remove a member from the group.
  • A group member can exit the group.
  • Members of a group can post messages for others to read.
  • Members of a group receive notifications when a new message is posted.
  • Message senders can update or delete their messages.

Endpoints

Base URL for all endpoints: https://sleekchat.azurewebsites.net/api

Endpoint URL Method Functionality
USERS
/users GET Fetch all registered users
/users/:userId GET Fetch a specified user
/users/register POST Register a new user
/users/authenticate POST Sign in a registered user
/users/:userId PUT Update a specified user
/users/:userId DELETE Delete specified user
GROUPS
/groups GET Fetch all existing groups
/groups/:groupId GET Fetch a specified group
/groups POST Create a new group
/groups/:groupId PUT Update a specified group
/groups/:groupId DELETE Delete a specified group
MEMBERSHIPS
/memberships GET Fetch all memberships
/memberships?memberId=:userId GET Fetch all memberships for the specified user
/groups/:groupId/memberships GET Fetch all memberships for the specified group
/groups/:groupId/memberships POST Add a user to the specified group
/groups/:groupId/memberships?memberId=:userId DELETE Remove a specified user from the group
MESSAGES
/messages GET Fetch all messages
/messages?senderId=:userId GET Fetch all messages sent by the specified user
/groups/:groupId/messages GET Fetch all messages posted in the specified group
/groups/:groupId/messages?senderId=:userId GET Fetch all messages posted in the group by this user
/groups/:groupId/messages POST Post a new message within the specified group
/groups/:groupId/messages/:messageId PUT Update a message previously sent to the group
/groups/:groupId/messages/:messageId DELETE Delete a message previously sent to the group
NOTIFICATIONS
/notifications GET Fetch all notifications
/notifications/:notificationId GET Fetch a specific notification
/notifications/:notificationId PATCH Update a specific notification received by this user
/notifications/:notificationId DELETE Delete a specific notification received by this user

Built with

  • Primary language: C#
  • Server technology: ASP.Net Core
  • Database system: Microsoft SQL Server & Azure SQL Database
  • ORM: Entity Framework Core
  • API documentation: Swashbuckle.AspNetCore
  • Target Runtime: .Net Core 3.1.1

License

MIT © Philip Newman.

About

A simple application that enables friends and colleagues create groups for messaging.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages