4.2 KiB
React Social Network
The React Social Network is an open source project relying on React a powerful javascript library for building the user interface. In this project, I tried to show some features of react/react components as a social network.
Since I started building this project I've planned to have a back end for this project so I haven't focused on performance until I build the back end and move some data procedure from end to back end. Therefore I need to change data structure and actions for Redux.
DEMO
Document
Features
- React A javascript library for building user interfaces.
- Redux is a predictable state container for JavaScript apps.
- Material-UI A Set of React Components that Implement Google's Material Design.
- react-redux Official React bindings for Redux.
- Firebase products like Analytics, Realtime Database, Messaging, and Crash Reporting let you move quickly and focus on your users.
- redux-thunk Redux Thunk middleware allows you to write action creators that return a function instead of an action. The thunk can be used to delay the dispatch of an action, or to dispatch only if a certain condition is met. The inner function receives the store methods dispatch and getState as parameters.
- Express Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.
- React Router V4 for routing website location
- Sass CSS with superpowers. Sass boasts more features and abilities than any other CSS extension language out there.
- Webpack for bundling code
In my todo list:
- Documentation
- Testing
- Security issues
- Performance
- Add some features and solving bugs
- Sharing post in social itself and other socials
- Add link feature to post
- Add vido post
- Add image gallery post
- Search post and people ...
Prerequisites
Install NodeJs
Installing
- Installing all nodejs modules:
npm install - Rub webpack to build bundle file
webpack - Running server:
node server.js - Configure firebase:
-
Get firebase config
-
Create a folder in root folder
react-blogset the nameconfig=>>react-blog\config -
Create two files in
>react-blog\configset their namedevelopment.envandtest.env=>>react-blog\config\development.envand>react-blog\config\test.env -
Inside the files, you should write some keys of firebase configuration (each file is depend on the environment you work in
NODE_ENV. If you setNODE_ENV=developmentyour project will use fromdevelopment.envto config firebase but if you set itNODE_ENV=testit will usetest.envin test environment):API_KEY=<API_KEY>
AUTH_DOMAIN=<PROJECT_ID>.firebaseapp.com
DATABASE_URL=https://<DATABASE_NAME>.firebaseio.com
PROJECT_ID=<PROJECT_ID>
STORAGE_BUCKET=.appspot.com
MESSAGING_SENDER_ID=<SENDER_ID>HOST_URL
-
- For example you should add
HOST_URL=http://localhost:3000inconfig/development.envfor development environment and then addHOST_URL=http://hostname.cominconfig/production.envfor production environment
Warning
- If you're using Windows you should install all node-gyp dependencies with following commands:
$ npm install --global --production windows-build-tools
and then install the package
$ npm install --global node-gyp
Authors
- Amir Movahedi
License
This project is licensed under the MIT License - see the LICENSE file for details