Modusin is a publishing network for learners
The goal of this app is to clone a Medium web app, called Modusin.
- Node.js
- React.js
- React Router
- React Redux
- Redux
- Redux Thunk / Redux Saga
- Netlify
- CloudFlare
- Uniregistry
src
index.js
: configures the whole React + Router + ReduxApp.js
: sets the routes forpages
styles
: all global styles*.css
templates
: wrapspages
components*.js
: usually formatted asLayout*
pages
: containslarge
components*.js
large
: containsmedium
components*.js
medium
: containssmall
components*.js
small
: contains primitive DOM components*.js
redux
stores
reducers
actions
containers
Install yarn
with npm
npm install -g yarn
yarn install
Create .env
file that contains:
REACT_APP_API_URL=http://localhost:3000
REACT_APP_JWT_SECRET=verysecrettext
This .env
can be changed in production
as well.
yarn dev
Also run the backend API
yarn dev
yarn build
node
=> react
=> react-scripts
=> react-app-rewired
GitHub => Netlify => CloudFlare => mhaidarhanif.org/modusin.com
yarn deploy
Route | Component |
---|---|
/ |
home |
/post/:id |
post |
/register |
register |
/login |
login |
/profile |
profile |
/setting |
setting |
- Logo
- Topic
- SearchBox
- ActionButton
- ActionAvatar
- SectionTitle
- PostTitle
- PostImage
- PostSnippet
- Avatar
- MetaText
- MetaTextSmall
- FooterText
- ActionInput
- PageTitle
- PageSubtitle
- PageText
- ActionBar
- SearchBox
- ActionButton
- ActionAvatar
- TopicTags
- Array of Topic
- FeaturedPost
- PostTitle
- PostImage
- PostSnippet
- MetaText
- SmallPost
- PostTitle
- PostImage
- PostSnippet
- MetaText
- MetaTextSmall
- ProfileBar
- Avatar
- MetaText
- MetaTextSmall
- FooterTexts
- FooterText
- SegmentNavigationHeader
- Logo
- ActionBar
- TopicTags
- SegmentFeaturedPosts
- Array of FeaturedPost
- SegmentLatestPosts
- Array of SmallPost
- SegmentPostContent
- ProfileBar
- PostTitle
- PostImage
- PostTextContent
- Provider
- Router
- PageCommon
- PagePost