Git Product home page Git Product logo

sleekchat's Introduction

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.