Coder Social home page Coder Social logo

titans-food-backend's Introduction

TEAM-TITANS-BACKEND

Table of Contents

Installation Setup

Prerequisites

Before getting started, make sure you have the following prerequisites installed on your development environment

  1. PHP: Laravel requires PHP 7.4 or higher. If you already have it installed you can check you current version by running php -v or php -version on your terminal.
  2. Composer: Composer is a PHP package manager used for Laravel's dependency management. You can download composer from Compoers
  3. Web Server: You can use any server of your choice for local development, such as Apache, Nginx or Laravel built-in development server
  4. Database: Laravel supports multiple database systems, including MySQL, SQLite, PostgreSQL and SQL Server. Ensure you have one of these databases installed and configured.
  5. Git: Git is a version control system. It will be used for managing the project's source code.

Installation

1. Clone the Repository

  • Clone the Laravery project repository for this project by copying the link below: https://github.com/hngx-org/Titans-food-backend.git
  • Go to you terminal, navigate to the server directory (such as apache).
  • Change directory to the htdocs directory
  • Clone the repository link you copied above using the command below: git clone https://github.com/hngx-org/Titans-food-backend.git

2. Navigate to your cloned Project Directory

Change your current working directory to the cloned working directory using the command below: cd titans-food-backend

3. Install Project Dependencies

  • Open your terminal or command line and navigate to the cloned project directory
  • Run the following command to install all the dependencies using composer: composer install

4. Copy the Environment File

  • Make a copy of the provided .env.example file and name it .env using the command below: cp .env.example .env

5. Configure the environment variables

  • Go to the root directory of your laravel cloned project, you will find a file name .env
  • Open the .env file in a text editor and configure your databse connnection details as follows: DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=your_database_name DB_USERNAME=your_database_username DB_PASSWORD=your_database_password NB: The datase should be created already in your local database

6: Generate an application key

  • Open your terminal and navigation to the project root directory
  • Run the following command to generate the application key: php artisan key:generate

7: Migrate Database

  • Open your terminal and navigate to the root directory
  • Run the following command to create all database tables: php artisan migrate

8: Start Development Server

  • Open your terminal and navigate to the project root directory
  • Run the following command to start the server: php artisan serve This will start a development server at http://127.0.0.1:8000
  • Open a browser and access the url provided (http://127.0.0.1:8000/api).

Your laravel api is now fully setup, running on your local machine.

Github Team Collaboration Flow

Setup a git repository

  • Create a GitHub repository for the project.
  • Ensure the repository is set to either public.

Branching Strategy

  • Create a new branch for each feature such as bug fix or task using the command below: git checkout -b branch-name

Branching

Main Branch
  • The main branch represents the stable version of the project
  • Tasks are merged into the main branch after thorough testing and code reviews
Feature Branches
  • Create feature branches for your task
  • Branch names should be descriptive for easy identification (e.g. your slack username)
Bugfix Branches
  • Create bugfix branches to address specific issues.
  • Branch names should be clear (e.g., bugfix/issue-123).

Development Workflow

  • Write your code, make changes and run the necessary testing locally.
  • Add and commit your changes using the following commands: git add . git commit -m "Descriptive commit message"
  • Push your commited changes to the remote repository and set up an upstream(remote) branch at the same time as follows: git push -u origin branch-name
  • Subsequent push should be done to the remote repository using: git push origin branch-name

Pull Requests

  • Create a pull request on Github when you are ready to merge your changes into the main branch.
  • Request reviews from team members whom where assigned to perform review, to ensure quality code.
  • Resolve any conflict and make necessary changes based on feedback.
  • After approval and successful tests, the branch is merged into main.
  • The branch is delete if it's no longer needed

Pulling Updates

  • Pull from the default (main) branch using: git pull origin main

  • Pull from your upstream branch using: git pull origin branch-name

Issue Tracking

  • GitHub Issues is used to track and manage tasks, bugs, and feature requests.
  • Issues are clearly define based on its context, and its priority.

Collaboration Best Practices

  • Communicate with your team using project management tools, slack, chat platforms or meetings
  • Use meaningful commit messages and follow the project coding style to enhance code readability across the team
  • Document your code and the project's architecture for better team understanding
  • Keep sensitive information such as database credentials, API Keys, secure and out of version control using .gitignore
  • Backup your code and database regularly

API Endpoints

  • API Endpoints can are documented here

    The endpoints can be tested on the Project Swagger Docs. Open your browser and access the API docs from the url (https://titans-food-backend.onrender.com/api/docs). NB: To access authenticated routes, Ensure to login, using the route api/v1/auth/user/signin then copy the access_token from the login response and input it in the Swagger authorization BearerAuth by clicking on the 'Authorize' button at the top right of the screen.

Contributing

  • codelikesuraj
  • Shola Harry
  • theblackwrist
  • Kitti Solomon
  • J-Engineers
  • Rahmanakorede
  • Emekaenyinnia
  • kayxleem
  • engr state
  • Favour Bassey
  • Jevans Stanley
  • chriswax
  • edoka
  • the_last_php_bender
  • Ruthiejay
  • GoodnewsPerfect
  • Akinyooye Femi
  • teerka
  • mrprotocoll
  • james arua
  • piouskenny
  • Leakey_Nyamweya
  • 7j4n1
  • DevMenor
  • Greegman
  • Apple
  • Adeleke_Ogunsona
  • JesseJason
  • GiftieO
  • Daniel Dunu
  • TheMaxwellJames
  • bahd_dev
  • RichmanLoveday
  • splendidabbey
  • ruxy1212

With this guide, you have successfully installed Laravel, initialized your project, and set up a Github team collaboration work flow.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.