Skip to content

Final-Year-Project-Cian-Kevin/final-project

Repository files navigation

Fourth Year Applied Project And Minor Dissertation

Project Details

Project Details
Course BSc (Hons) in Software Development
Module Applied Project and Minor Dissertation
College GMIT Galway
Students Kevin Barry            G00339811
Cian Gannon          G00337022
Project Supervisors Mr Martin Kenirons
Dr. John Healy
Project Title Techbook

Table Of Contents

Table of contents generated with markdown-toc

Overview

Social media today plays an expanding significant role in society, the information technology industry and the field of computer science. The use of social media is a hot-topic for many organizations, with the aim to identify approaches in which companies can use applications to increase profits and grow product awareness. On a day-to-day basis, users from across the globe are becoming increasingly frustrated, wasting valuable time, scrolling through irrelevant content while companies are wasting money advertising to users outside their market. In order to achieve the optimal benefits from social media, for both users and businesses, the development of these technologies require approaches that focus on specific human interests and values.

This project aims to deliver a solution by developing a platform with the goal of delivering a social experience that targets a specific user base. As the authors are in the field of computer science the focus of the content will be to appeal to the tech savvy user. The proposed solution will be a web application that will offer a unique online community to users and businesses interested in technology.

Introduction

The project has been developed as a MEAN stack Angular 6 CRUD Web Application. The initial project was generated with Angular CLI version 6.0.1. The system utilises a 3 tier architecture using MongoDB, ExpressJs, Angular and NodeJs.

Techbook is a social media platform that offers a unique experience offering a community for users interested in technology to communicate.

Features

Application features

  • An easy to use single page web application with responsive navbar.
  • Full CRUD capabilities with restful API viewable with Swagger.
  • Fully functional MongoDB database with restrictions and validation.
  • Sensitive data such as passwords is encrypted before adding to database.
  • Fully responsive GUI to adapt to all screen sizes.
  • Data and posts generated from Reddit API.
  • Server logging system.

User features

  • Can register an account.
  • Can log in.
  • Can stay logged in using local storage.
  • Can log out.
  • Can update profile info and upload profile image.
  • Can follow / unfollow other users.
  • Can subscribe / unsubscribe to posts.
  • Can view saved posts.
  • Can add a post.
  • Can comment on posts.

Video Demo

To view the video demonstration click the video below. Watch the video

Dissertation

Click below to view our the Dissertation PDF for the project. The dissertation contains an in depth view of all aspects of the development from research and design to implementation and final evaluation.


TypeDocs

Click below to view the TypeDocs for the project. This contains all documentation for the angular client.


Swagger API Documentation

Click below to view the API documentation for the project. This contains all documentation for the API.


Technologies

Below is a brief list of some of the technologies used. For a comprehensive list of dependencies see here

  • Languages:
    • JavaScript
    • TypeScript
    • HTML
    • CSS
  • Libraries:
    • Bootstrap
    • Mongoose
    • Angular Material
  • Frameworks:
    • Angular 6.0.1
    • Express
    • Swagger
  • Databases:
    • MongoDB
  • Environments:
    • NodeJs
  • Development Software
    • Postman
    • Visual Studio Code
    • Git

Prerequisites

  • MongoDB installed.
  • Nodejs installed.
  • Git or git bash to clone the project.
  • Access to an internet browser.

Deploy Project locally

Download the Project

Clone this repository to your machine.

  • Navigate to an empty directory
  • In command prompt
	> git clone https://github.com/Final-Year-Project-Cian-Kevin/final-project.git

Download MongoDB

The project uses MongoDB. To instructions on how to install MongoDB click the link provided below.

Download Mongodb

Install required libraries

After cloning the project some libraries and decencies will be required. This can be achieved by installing and updating the node package manager.

Navigate to the downloaded repository and enter :

    > npm install
    > ng update
    > npm update 

Run The Development Server

To deploy locally navigate to the project directory in cmd.

Run the following command to build the project and launch the server:

    > npmstart

The server will now be running and connected to the MongoDB. Navigate to ```localhost:3000`` to view the application.

Deployment

This application is currently deployed on an AWS instance. Click Here to TechBook live

Preview

Below is a preview of some of the applications pages rendered on both a mobile device and PC. Please note these are the inital screenshots of the pages and may have changed by the time the project is submitted. To view all pages click Here for TechBook live. An indepth explanation of each page is available in System Design section of the Dissertation.

Homepage

Web view Mobile view

Profile Page

Web view Mobile view

Log in Page

Web view Mobile view

Register Page

Web view Mobile view

Settings Page

Web view Mobile view

Friends Page

Web view Mobile view

About Page

Web view Mobile view