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.
- 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.
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 |
- 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