Storybook is a social media web application built as a group project for CS3122 - Advanced Database Management Systems. This project demonstrates the application of database concepts and technologies in a real-world context.
Users can:
- Register and create profiles
- Share posts with text and optional images
- Comment on other users' posts
- Like posts
The Postman API playground is available at Postman. API docs are available at /docs.
To install and run StoryBook, follow these steps:
- Clone the repository:
git clone https://github.com/dilshankarunarathne/storybook.git
- Navigate to the project directory:
cd storybook
- Install dependencies:
cd server && npm install && cd ../client && npm install && cd ..
- Start the server:
cd server && npm start
- Start the client:
cd client && npm start
storybook-master
│ .gitignore
│ docker-compose.yml
│ LICENSE
│ README.md
│ swagger.json
│
├───.github
│ FUNDING.yml
│
├───client
│ │ .gitignore
│ │ .gitkeep
│ │ Dockerfile
│ │ package-lock.json
│ │ package.json
│ │ README.md
│ │
│ ├───public
│ │ │ index.html
│ │ │ style.css
│ │ │
│ │ └───assets
│ │ avatar_default.jpg
│ │ cover1.jpg
│ │ cover2.jpg
│ │ email-veri1.jpg
│ │ like.png
│ │ like1.jpg
│ │
│ └───src
│ │ App.css
│ │ App.js
│ │ App.test.js
│ │ index.css
│ │ index.js
│ │ logo.svg
│ │ reportWebVitals.js
│ │ setupTests.js
│ │
│ ├───api
│ │ comments.js
│ │ post.js
│ │ profile.js
│ │ reaction.js
│ │ users.js
│ │
│ ├───Components
│ │ ├───edit_profile
│ │ │ editProfile.css
│ │ │ EditProfile.jsx
│ │ │
│ │ ├───feed
│ │ │ feed.css
│ │ │ Feed.jsx
│ │ │
│ │ ├───landingPage
│ │ │ landingPage.css
│ │ │ LandingPage.jsx
│ │ │
│ │ ├───login
│ │ │ login.css
│ │ │ Login.jsx
│ │ │
│ │ ├───post
│ │ │ post.css
│ │ │ Post.jsx
│ │ │
│ │ ├───profile
│ │ │ profile.css
│ │ │ Profile.jsx
│ │ │
│ │ ├───register
│ │ │ register.css
│ │ │ Register.jsx
│ │ │
│ │ ├───share
│ │ │ share.css
│ │ │ Share.jsx
│ │ │
│ │ └───topbar
│ │ topbar.css
│ │ Topbar.jsx
│ │
│ ├───context
│ │ AuthContext.js
│ │ AuthProvider.js
│ │ PrivateRoute.js
│ │
│ └───pages
│ ├───forgot
│ │ forgot.css
│ │ Forgot.jsx
│ │
│ ├───home
│ │ home.css
│ │ Home.jsx
│ │
│ ├───reset
│ │ reset.css
│ │ Reset.jsx
│ │
│ └───success
│ success.css
│ Success.jsx
│
├───database
│ .gitkeep
│ database.sql
│ triggers.sql
│
├───docs
│ .gitkeep
│ index.html
│
└───server
│ .gitignore
│ app.js
│ db.js
│ Dockerfile
│ package-lock.json
│ package.json
│ process.env
│ README.md
│
├───controllers
│ │ authController.js
│ │ commentController.js
│ │ homeController.js
│ │ profileController.js
│ │ reactController.js
│ │
│ └───uploads
│ .gitkeep
│
├───middleware
│ authMiddleware.js
│ mailer.js
│
├───models
│ Comment.js
│ Post.js
│ React.js
│ User.js
│
└───static
.gitkeep
account-verification-mail.html
forgot-password-mail.html
We welcome contributions to this project. Please check the contribution guidelines for more information.
The group members are:
- EUSL/TC/IS/2019/COM/24 Dilshan
- Server Application
- Database
- Client-Server Integration
- EUSL/TC/IS/2019/COM/109 Tharuka
- Client Application
- EUSL/TC/IS/2019/COM/69 Isuru
- Client Application
- EUSL/TC/IS/2019/COM/49 Udari
- Client Application
- EUSL/TC/IS/2019/COM/35 Madhawa
- Documentation
- EUSL/TC/IS/2019/COM/11 Abiram
- Client Application
- EUSL/TC/IS/2019/COM/23 Sakaniya
- Client Application
This work is licensed under a
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.