Skip to content

MTraveller/cotal-project

Repository files navigation

The 5th Project Portfolio of CI

Cotal

Frontend Project URL: View live project

Backend Project URL: View live project

Backend Project REPO: View live project


Mockup


User stories

User stories were created at the beginning of the project before any actual coding began.

kanban

See completed and not completed user stories + testing of user stories here


Table of Contents


Planes


Surface

The colors used for this project are the following: some light blue, pink, yellow, and lime green are also used.

The logo and loader were made by myself, and post images shown in this readme, were taken from rotating backgrounds on my Samsung phone.


Feed page

feed


Network page

network


Account page

account


Setting page

setting


Profile page

profile


Post page

post


Wireframe

Mobile Desktop
Not Done, but is fully responsive throughout the site. see wireframes here

  • Colour Scheme

    • colors


    Typography

    • System font is used to save resources and user is already familiar with the font used on system.

  • Imagery

    • The purpose of the images is to make the app more appealing.
    • The colors and images all serve to be aligned with and assist in the app's branding.
    • The images also intend to give the app an identity the user can relate to, lifting its overall impression.

    • Favicon image:

      Favicon Image


Skeleton

On top, there's the header; in the middle, the main content area; and at the bottom, the footer. The content is centered with two sidebars that can show related information to the user. The navigation is sticky and will follow the user while scrolling on both mobile and desktop.


Structure

Data is structured around the user, the user is the main focus.


Scope

What features,(nvp), both ability and desires?

Minimum viable product

can add content
can add images
can comment

Desired features

messaging
networking
following
post likes
comment edit
comment delete
search posts


Strategy

The site's goal is to bring young people together and encourage them to work together to create jobs for themselves. Together, they can begin an adventurous journey.


Development

Component Reuse

Throughout the development of Cotal, the concept of reusing components was of high importance, and it is clearly evident that this project displays understanding of the React architecture. This section is to document the reused components.


Component Explanation
Input.jsx Allowing to use one <input /> for all text based inputs.
Loader.jsx To display a spinning loader to indicate processing.
UserPost.jsx To display a user post, portfolio, award, certificate and creative.
SideBarLeft.jsx To display the left sidebar on different pages for a three-section page layout.
SideBarRight.jsx To display the right sidebar on different pages for a three-section page layout.
SideBar.jsx To display the left or right sidebar on different pages for a two-section page layout.
OneSection.jsx To display a one-section page layout for non-logged-in users.
OneSection.jsx To display a one-section page layout for logged-in users.
ThreeSection.jsx To display a three-section page layout with left and right sidebars.
TwoSectionLeft.jsx To display a two-section page layout with a left sidebar.
TwoSectionRight.jsx To display a two-section page layout with a right sidebar.
Seo.jsx To inject meta tags to <head>
InputEditButton.jsx To swap between span and input in PersonalDetail.jsx
FlipTwo.jsx To swap between social icons and input in PersonalDetail.jsx
Textarea.jsx To use one <textarea> input in multiple components.
UploadSvg.jsx To use a unified upload icon in multiple locations but with different width and height.
SocialInput.jsx To allow one component to be reused for different social icons.
LessThanTwo.jsx To display a section with one post.
LessThanThree.jsx To display a section with up to two posts.
MoreThanTwo.jsx To display a section with more than two posts.
ProfileImageSvg.jsx To display an avatar icon.
Image.jsx To display an optimized and lazy-loaded cloudinary image.
IndexSubmitButton.jsx To display the form submit button on the index page in Login, Register and Forgot components.
InputEditButton.jsx To display the edit button to allow editing of the personal details objects.
ImageInput.jsx To display a hidden file input.
ButtonImageInput.jsx To display a file input field as an image.
ButtonLabelInput.jsx To display a file input field as a label with an icon.
OpenLinkExternal.jsx To display a button that programmatically opens external links.
ServerError.jsx To display an server error message to the user.

Languages Used


Frameworks, Libraries & Programs Used


  1. Mockup - Sketch UI & UX
  • Mockup takes a fresh approach by redefining and upgrading novel concepts when it comes to UI & UX sketching. With the creative experience and intuitive touch it offers, it is the perfect app to brainstorm and blueprint your next app design.
  1. Git
  • Git was used for version control by utilizing the Gitpod terminal to commit to Git and Push to GitHub.
  1. GitHub:
  • GitHub is used to store the project's code after being pushed from Git.
  1. Netlify
  • The fastest way to combine your favorite tools and APIs to build the fastest sites, stores, and apps for the web.
  1. VisualStudioCode
  • Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.
  1. tailwindcss
  • A utility-first CSS framework packed with classes like flex, pt-4, text-center and rotate-90 that can be composed to build any design, directly in your markup.
  1. styled components
  • Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress
  1. Affinity designer
  • Professional photo editing, publishing, graphic design and illustration at your fingertips.
  1. yarn
  • Yarn is a package manager that doubles down as project manager. Whether you work on one-shot projects or large monorepos, as a hobbyist or an enterprise user, we've got you covered.
  1. gatsby
  • Gatsby enables developers to build fast, secure, and powerful websites using a React-based framework and innovative data layer that makes integrating different content, APIs, and services into one web experience incredibly simple.
  1. axios
  • Axios is a simple promise based HTTP client for the browser and node.js. Axios provides a simple to use library in a small package with a very extensible interface.
  1. react icons
  • nclude popular icons in your React projects easily with react-icons, which utilizes ES6 imports that allows you to include only the icons that your project is using.
  1. dotenv
  • Dotenv is a zero-dependency module that loads environment variables from a .env file into process.env. Storing configuration in the environment separate from code is based on The Twelve-Factor App methodology.
  1. prettier
  • code formatter
  1. eslint
  • ESLint statically analyzes your code to quickly find problems. It is built into most text editors and you can run ESLint as part of your continuous integration pipeline.

Testings

Lighthouse

lighthouse


User Stories

Testings of user stories

Bugs

I have grown fond of eliminating bugs found in my code as I intentionally try to provoke and find them. All known bug were fixed.


Validator

JS validator through VSCode, eslint.


Deployment


Fork

How to fork this repository:

  1. Log in to GitHub and navigate to this repository.
  2. You'll see a button called Fork on the top right side of the page. Click the button to create a copy of this repository to your own GitHub account.

Clone

How to clone this project:

  1. Under the repository’s name, click on the Code button.
  2. In the HTTPS tap, click on the clipboard icon to copy the given URL.
  3. In your IDE of choice, open git bash.
  4. Change the current working directory to where you want the cloned directory to be.
  5. Type git clone, paste the URL copied from GitHub - https://github.com/MTraveller/cotal-project.git.
  6. Press enter, and you are done.

Development

First install gatsby-cli.

Then clone the repo if you haven't done so already and install or initiate yarn. Then using the terminal inside the cloned folder write yarn install and yarn will install all dependencies. Thereafter you can do one of the following.

In the base folder, the files .env.development-RENAME and .env.production-RENAME must be edited before using any of the commands below.

yarn start to start the development
yarn build to build an optimized version
yarn serve to serve as production.

Deploy

To deploy to netlify, simply sign up to netlify and connect your account. Adding and connecting netlify with your repo will automatically deploy this project on netlify.

Remember to add GATSBY_API_URL environment variable to the backend api url.


Credits


Sources Used

React Docs
Gatsby Docs
Reach router Docs
Mozilla Docs


Acknowledgement

No code within this project is a copy unless specified explicitly in the source code—Code Institute provided the base template for this project. The sources used above provided guidance throughout the development.

This project is part of the "Full Stack Software Developer Diploma" at Code Institute.

MT 2022.

Back to top

About

Frontend]: Cotal - connecting talent is a social website for talents to connect made with React on the frontend.

Resources

License

MIT, 0BSD licenses found

Licenses found

MIT
LICENSE
0BSD
LICENSE-Gatsby

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published