{"id":15496670,"url":"https://github.com/guilleangulo/social-network-mean","last_synced_at":"2025-06-10T11:34:18.194Z","repository":{"id":36620408,"uuid":"220559764","full_name":"GuilleAngulo/social-network-mean","owner":"GuilleAngulo","description":"A social network with MEAN stack","archived":false,"fork":false,"pushed_at":"2023-01-06T01:30:48.000Z","size":16992,"stargazers_count":3,"open_issues_count":44,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-22T21:44:33.995Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GuilleAngulo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-11-08T22:48:19.000Z","updated_at":"2024-05-11T20:09:24.000Z","dependencies_parsed_at":"2023-01-17T03:15:15.988Z","dependency_job_id":null,"html_url":"https://github.com/GuilleAngulo/social-network-mean","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuilleAngulo%2Fsocial-network-mean","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuilleAngulo%2Fsocial-network-mean/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuilleAngulo%2Fsocial-network-mean/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuilleAngulo%2Fsocial-network-mean/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GuilleAngulo","download_url":"https://codeload.github.com/GuilleAngulo/social-network-mean/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuilleAngulo%2Fsocial-network-mean/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259067330,"owners_count":22800309,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-02T08:26:54.347Z","updated_at":"2025-06-10T11:34:18.172Z","avatar_url":"https://github.com/GuilleAngulo.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🗣️ Social Network MEAN\nThis application is a social network developed with MEAN Stack (MongoDB, Express, AngularJs and Node.js). Allows to follow people´s publications, which can include photos. Also it implements one message panel to send private messages to users, and also a global chat to talk in a public way.\n\n### Backend\nDeveloped in NodeJS, an API Rest that attend requests from the web version of the frontend.\n\n### Frontend\nDeveloped in AngularJS, the main components are:\n\n#### Login / Register\nTwo main options at the right-top side of the app, where you can register yourself and login as well. In case of password forgotten, the login component allows to follow a link for password reset: First an email is sent to the email address of the user with a token. This token is used to reset the user´s password in the next step (this token is set to be valid only for 60 minutes).\n\n#### Account\nIts possible to update user data at any time, including the profile photo.\n\n#### Timeline\nThe publications of the people followed by the user is shown. Also at the right side of the page the \"user panel\" sidebar is displayed.\n\n#### People\nThe list of people registered at the app. A button for follow or unfollow is enabled. Again, the current user panel is displayed.\n\n### Profile\nBy clicking the name of an user or entering the own name, the profile page is shown. All publications and stats of the user are displayed.\n\n#### Messages\nShows a panel with the messages sent and received by the user. It´s possible to send messages only to people who is already following the current user.\n\n#### Chat\nThis global chat connects everybody together for chatting in a public way.\n \n\n\n### Modules\n* [Express](https://expressjs.com) and [CORS](https://www.npmjs.com/package/cors) - Node.js web framework for API routing\n* [Mongoose](https://mongoosejs.com/) - Mongo DB object modeling\n* [Socket.io / Socket.io-Client](https://socket.io/) - Real-time WebSocket for the Global Chat.\n* [NGX-Toastr](https://www.npmjs.com/package/ngx-toastr) - Toast messages notifications (animations in Angular)\n* [RxJS](https://rxjs-dev.firebaseapp.com/guide/overview) - Library for composing asynchronous and event-based programs by using observable sequences\n* [jQuery](https://jquery.com/) - A feature-rich JavaScript library\n* [bcrypt](https://www.npmjs.com/package/bcrypt) - A library to help to hash passwords\n* [JWT-simple](https://www.npmjs.com/package/jwt-simple) - JSON Web Token for session identity.\n* [Nodemailer](https://nodemailer.com/about/) - Email sending issue in Node.js\n* [Connect-Multiparty](https://www.npmjs.com/package/connect-multiparty) - Upload middleware.\n\n\n### How to run\nIt´s necessary to have installed: [Node.js (LTS)](https://nodejs.org/en/) and [NPM](https://www.npmjs.com/get-npm): It´s also recommended [Angular-CLI](https://cli.angular.io/).\n\n#### Backend\n```\ncd server/\nnpm start\n```\n#### Frontend\nThe client can be run also with Angular-CLI command \"ng serve\", or simply (will run \"start\" script at package.json): \n```\ncd client/\nnpm start\n```\n\n## 🧱 Built With\n\n* [MongDB](https://www.mongodb.com/) - Database System\n* [Express](https://expressjs.com/en/guide/routing.html) - Routing framework\n* [Angular](https://angular.io/) - Application framework for client-side, developed in typescript.\n* [NodeJS](https://nodejs.org/en/) - The server-side JavaScript runtime environment\n\n\n## 📸 Screens\n\u003cimg src=\"https://github.com/GuilleAngulo/social-network-mean/blob/master/home.png\" width=\"420\"\u003e \u003cimg src=\"https://github.com/GuilleAngulo/social-network-mean/blob/master/login.png\" width=\"420\"\u003e\n\n\u003cimg src=\"https://github.com/GuilleAngulo/social-network-mean/blob/master/timeline.png\" width=\"420\"\u003e \u003cimg src=\"https://github.com/GuilleAngulo/social-network-mean/blob/master/timeline-photo.png\" width=\"420\"\u003e\n\n\u003cimg src=\"https://github.com/GuilleAngulo/social-network-mean/blob/master/people.png\" width=\"420\"\u003e \u003cimg src=\"https://github.com/GuilleAngulo/social-network-mean/blob/master/profile.png\" width=\"420\"\u003e\n\n\u003cimg src=\"https://github.com/GuilleAngulo/social-network-mean/blob/master/messages.png\" width=\"420\"\u003e \u003cimg src=\"https://github.com/GuilleAngulo/social-network-mean/blob/master/chat.png\" width=\"420\"\u003e\n\n## 💬 Live Demo\nYou can test it [here](http://ngsocial.guilleangulo.me)\n\n## 📹 Video\n[![Watch the demo](https://github.com/GuilleAngulo/social-network-mean/blob/master/frame.png)](https://youtu.be/zaY9g2BiZR8)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguilleangulo%2Fsocial-network-mean","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguilleangulo%2Fsocial-network-mean","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguilleangulo%2Fsocial-network-mean/lists"}