Skip to content

Mo Skool V1 - FREE web app template - React + Firebase

License

Notifications You must be signed in to change notification settings

mo-sharif/moskool-free-app

 
 

Repository files navigation

Codacy Badge

What is this? 🤩

Great and simple getting started Web App template. You get a great React front-end app paired with Firebase serverless technologies. Very easy to get started, just configure firebase and circle ci and you will have a fully up and running full-stack app.

Used for Front-end/React courses and code questions in each course. Answering these questions can be done by solving broken code in each course and earning points.

This template is the simpler version of Moskool.com

What does it do? 🤔

  • 📝 Email and Social sign in
  • 🏗 Material-UI library with Dark mode
  • 🚀 Custom Components Library
  • 🎉 Custom Theme with Responsive mode
  • 🌏 Global Hook State
  • 🎣 Custom Permission and Roles Hooks
  • ♺ Save and Read DB data from firestore collection.
  • 🚓 Admin and protected routes
  • 📱 Single Page routing and lazy loading
  • 🍼 Built using Functional Components
  • 🙏 Simple state management with Higher order components and context API
  • 🚢 Circle CI ready (Builds and live deployment)
  • 💎 Story book
  • 💅 Prettier and Linter
  • 🛂 Commit hooks and commitizen
  • 🔥 Offline and PWA ready

What do I need? 🤘

Few steps to get it fully customized with your configs

  • setup firebase account and get configs

  • Update YOUR_PROJECT in .circleci/config.yml with your firebase info

  • Setup Circle Ci deployments following this firebase hosting deployment article

  • Commitizen and Husky Commit hooks can get annoying and prevent commits and pushes from happening, disable the in package.json if needed

  • Adjust prettier and linter configs

  • Review and update Routes and Constants

  • It's important to populate firestore with dummy data to view the pages, the UI is data driven. Follow the pics in the screenshots folder to create similar data.

  • Finally, create an admin account by signing up in the app and adding the admin property in firestore. See screenshots Have fun 🤘

Can I make this better?

YESS!! PRs are welcomed 🙌

Getting Started

  • Install yarn

  • Start yarn start

  • check yarn dependencies for updates yarn check-updates

  • build yarn build

  • test yarn test

Helpful Resources

3rd Party Dependencies

  • Material UI + icons
  • @sentry/browser for monitoring prod for console errors
  • firebase
  • material-table, an admin tool for adding questions
  • react-live: code editor + live preview + error debugger
  • react-typist: typist effect seen throughout
  • react-hook-form: Helps you create forms easily
  • use-global-hook: Easy state management using hooks
  • string-similarity: Compare two strings and get a matching percentage between the strings
  • recompose: used to compose a wrappedComponent with multiple HOCs

DEV Dependencies:

  • react-test-renderer: used for testing with Jest
  • husky for pre-push and comments
  • commitizen for commits
  • Prettier code formatting
  • ESlint code linter

Mind Map

Architecture and components mind map 🗺

Storybook

http://localhost:9009/

About

Mo Skool V1 - FREE web app template - React + Firebase

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 97.1%
  • HTML 2.8%
  • CSS 0.1%