Skip to content

App that shows you commits, branches and repositories of a Github user.

License

Notifications You must be signed in to change notification settings

wrujel/github-history

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

demo status deploy test

Github History App

Next.js Typescript Tailwind CSS React Github API Date-fns React-Hot-Toast Vercel Node.js NestJS Swagger Jest

This app will show you a list of all commits of a github repository. You can search by username, select the repository and branch you want to search and it will show you a list of all commits respectively.

Demo · Report issue · Suggest something

Table of Contents

Features

  • Show a list of all repositories of a Github user.
  • Show a list of all branches of a Github repository.
  • Show a list of all commits of a Github repository.
  • Use Github API to get data of commits, repositories, branches, etc.
  • Backend was developed with NestJS to create a REST API.
  • REST API was documented with Swagger.
  • Frontend was developed with NextJS and consume data from backend.
  • Frontend use Tailwind, a custom css loader and a dark theme.
  • Frontend deployed with Vercel.
  • Backend deployed with Railway.
  • Typescript was used in backend and frontend.
  • Use React-Hot-Toast to show notification messages.

Tech Stack

Getting Started

This is a mono repository project that is divided in two parts, the backend and the frontend. The backend is developed with NestJS and the frontend with NextJS.

Cloning the repository

Open a command prompt, and copy the following command, you need to have installed git.

git clone https://github.com/wrujel/github-history.git

Press Enter to create your local clone.

Cloning into 'github-history'...
remote: Enumerating objects: 138, done.
remote: Counting objects: 100% (138/138), done.
remote: Compressing objects: 100% (84/84), done.
remote: Total 138 (delta 54), reused 130 (delta 50), pack-reused 0 eceiving objects:  83%
Receiving objects: 100% (138/138), 230.03 KiB | 747.00 KiB/s, done.
Resolving deltas: 100% (54/54), done.

Setup Backend

Type the following command:

cd github-history/backend

Installation

Install all dependencies, you need to have installed nodejs version 16.15.0.

npm install

Running server

Commands to run backend server, use start:dev if you want to automatically reset server after saving changes.

# development
npm run start

# watch mode
npm run start:dev

The server will start running.

[Nest] LOG [NestApplication] Nest application successfully started 
Server running on port 8080

Open your browser and copy following url to see result:

http://localhost:8080/

Documentation

You can visit following path to see documentation generated with swagger:

http://localhost:8080/api/docs

Test

Commands to test server.

# unit tests
npm run test

# e2e tests
npm run test:e2e

Setup Frontend

In the root of project, type the following command:

cd github-history/frontend

Installation

Install all dependencies, you need to have installed nodejs version 16.15.0.

npm install

Running client

Run the development server:

npm run dev
# or
yarn dev

Open http://localhost:3000 with your browser to see the result.

Try Demo

The project is deployed with Vercel. Open this link with your browser to see demo:

demo