Odyssey is an Instagram clone which resolves around sharing images within community.
To install dependencies for both client and server:
npm run bootstrap:install
For separate instances:
npm run client:install
npm run server:install
Before launching, make sure to create .env
files in both server
and client
directories using provided .env.template
templates.
To launch both server and client parallely:
npm run bootstrap:start
For separate instances:
npm run client:start
npm run server:start
This repository is a monorepo - it contains both server and client source files.
client/
β£ public/
β£ src/
β β£ common/
β β β£ components/ <- a shared components directory
β β β£ context/ <- directory for context API usages
β β β β£ auth-context.js
β β β β theme-context.js
β β β hooks/ <- custom hooks directory
β β β£ useAuth.js
β β β£ useForm.js
β β β useHttpClient.js
β β£ constant/
β β£ styles/
β β β£ app.scss
β β β£ Main.js
β β β theme.js
β β£ util/
β β β validators.js
β β
β β // Main application functionalities with their respective pages and componenets are stored in separte directories.
β β
β β£ memories/
β β β£ components/
β β β pages/
β β£ user/
β β β£ components/
β β β β£ UserItem.js
β β β β UserList.js
β β β pages/
β β β£ Auth.js
β β β£ Logout.js
β β β Users.js
β β£ App.js
β β index.js
β£ .env <- Enviromental variables file
β£ .eslintrc.json
β .nvmrc <- node version used to compile client
server/
β£ controllers/ <- HTTP request controllers
β β£ memories.js
β β users.js
β£ middleware/
β β£ check-auth.js
β β file-upload.js
β£ misc/
β β loading.js
β£ models/ <- MongoDB collection items' models
β β£ http-error.js
β β£ memory.js
β β user.js
β£ routes/ <- Express routes
β β£ memories.js
β β users.js
β£ uploads/
β β images/ <- directory which contains uploaded images
β£ util/
β β path-to-unix.js
β£ .env <- Enviromental variables file
β app.js <- server launcher
- Better styling and RWD
- Liking and commenting specific photo
- Image fetching optimization