Giter Club home page Giter Club logo

Saberchat

A platform targeted towards centralizing communities and their networks and facilitate engagement. Saberchat allows users to quickly share and access important information, and presents multiple features for community organizations. Targeted towards schools, clubs and student-run programs and is currently servicing such groups throughout the Bay Area while also used to help schools for underprivileged students in India.

Platform Links

  1. https://saberchat.net/
  2. https://idot.saberchat.net/
  3. https://aapa.saberchat.net/

The above links been temporarily disbaneded as we are no longer servicing the above domains.

View a detailed overview of the platform, codebase and tech used, as well as an in-depth tutorial of the MEAN Stack on our site documentation!

Version History: Linked here

Contents

  1. App: Website's main file, implements all routes and libraries
  2. Controllers: Server logic files that are used in the callbacks of routes
  3. JoiValidation: schema for form validation
  4. Middleware: express middleware for permissions, uploads and form validation
  5. Models: Mongoose DB models for collection schema
  6. Procfile: Tells Heroku what command to call on app start (Deprecated)
  7. Public: Contains All Front-End CSS, JS and Static Display Images
  8. Routes: Server routes, accessed in app.js
  9. Services: Configurations for libraries and APIs such as image uploads and email sending
  10. Socket: Controls callback for real-time socket.io calls
  11. Utils: Functions used platform-wide in both controllers and EJS logic
  12. Views: EJS files of front end code for all pages

Libraries Used

  1. Axios: Facilitates JSON requests and responses. Saberchat currently uses it for email sending with SendGrid
  2. Bad-Words: Filters and censors any explicit text
  3. Body-Parser: Parses headers and data from HTML form bodies
  4. Cloudinary: Online platform which stores our uploaded media. Saberchat connects to it via an API and uploads images that are processed with Multer
  5. Connect-Flash: Flashes success and error messages on screen
  6. DataURI: Converts media uploads into buffers in preparation for Multer processing
  7. DateFormat: Provides an easy way to format and display dates and times
  8. Dotenv: Allows server to access environmental variables, the contents of the .env
  9. EditorJS: Text and content formatting, used for articles
  10. EJS: View engine that is used for all front-end files. Combines JavaScript logic with HTML markup to build platform based on data sent from the server
  11. Express: Node.js framework that is used for all routes and request-response systems. The backbone of our server
  12. Express-Mongo-Sanitize: Handles and sanitizes user data from server to MongoDB database
  13. Express-Session: Platform for cookie storage and security
  14. Fillers: Stores all filler words, used to build the Keyword Filter
  15. Helmet: Used for security purposes, to moderate valid data sources for different media and content formats
  16. Joi: Form validation package. Develops schema that are used to validate form data with the Sanitize-HTML package
  17. MemoryStore: Stores records of express sessions
  18. Method-Override: Allows forms to send PUT and DELETE requests
  19. Mongoose: Connects server to MongoDB database
  20. Multer: Processes uploaded media from files to a format that can be uploaded and stored in cloudinary
  21. Nodemon: Used by developers to automatically restart server when any backend code is updated
  22. Node-Schedule: Used to schedule certain tasks that the server performs without user involvement
  23. Passport: Used to authenticate users for logging in and registering accounts
  24. Passport-Local-Mongoose: Used to combine user data with passport authentication to log in users
  25. Passport.Socketio: Validating user information for real-time actions with socket.io
  26. Sanitize-HTML: Used in conjunction with Joi schema to validate form data
  27. Serve-Favicon: Used to send favicons from backend storage to EJS pages
  28. Socket.io: Module for real-time activity including shop orders and chat messages

saberchat's Projects

saberchat icon saberchat

Intranet platform for schools and small organizations. Currently servicing Montessori schools and student-run clubs within the East Bay.

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.