Skip to content
Nazmican Çalık edited this page Oct 31, 2018 · 18 revisions

Milestone 1 Report

Executive Summary

The start phase of the project was challenging since it includes creating and organizing small teams,choosing technologies, training of the team members, installation and setup processes of necessary programs. It took a considerable time to begin working on the project in terms of implementation. The overhead due to initialization process causes creating less as a last product for the customer. Profile page, desktop web design and building Android app are obvious missing points in this milestone. However, we are able to show the basic logic of the platform.

Status of Deliverables

Deliverable Status
Authentication with JWT Completed
Create user and event models and APIs Completed
Sign In, Sign Up Pages Completed
Feed page Completed
Event Detail & Creation Page Completed
User Profile Page Not Complete
Desktop Web Design Not Complete
Building Android App Not Complete
NodeJS Architecture Design and Setup Completed
Ionic Architecture Design and Setup Completed
Deployment Completed

Evaluation of the status of Deliverables

Backend Structure

In backend, we desire to have a concise as well as flexible architecture enabling creating models for abstraction of data and dividing the code into modules via controllers. The current architecture is, for now, sufficient for creating our event share platform, Actopus. Moreover, all the backend deliverables are successfully completed in this milestone. For the next milestones, the

Frontend Structure

User Experience

Ionic Cordava Build

Summary of Coding Work Done

Person Coding Summary
Didem Öngü -
Kemal Tulum -
Oğuz Kaan Yüksel Frontend Authentication & Data Services, Frontend-Backend integration, Frontend routing & feature modularization: Non-UI frontend base system
İlyas Demirkıran -
Gökhan Tekel -
Özgür Akaoğlu Event Data Model Delete Route, Authentication with JWT
Ümit Yolcu Event Data Model Route / Controller Creation
Yusuf Kalaycı User Model Signin Route / Sesion Control
Nazmican Çalık Backend server initial structure, initial code with User Data model and route, JWT Authentication, Database Setup, mLab and Heroku Continuous Deployment

Requirements

Design

We have designed our application to behave as a full stack multi-platform application. Our application has 2 platforms: Mobile application and Web Application. They both share the same database on the backend side. One server for our application serves the database and necessary CRUD operations via api. We are using ionic framework for frontend and mobile application. Our backend serves the static files that ionic framework creates and also serves api endpoints under /api route. We used a nosql database (mongodb) fot the application. Also, we have created a continuous deployment using heroku services. We are planning to create CRUD operations for all data models and also create search and recommendation engines to make the platform more interactable.

Project Plan

Code structe and Group Process

Code Structure

Teams and workflow: In the project we have two main teams. One for frontend and one for backend. Our root repository holds both backend and frontend stack together. We have one main branch for code development and production, which is master. Each task is solved/carried out under feature branches, and then they are deleted. For example: If authentication is a feature, the developer opens a new branch for the feature and works there. After completing the feature s/he opens a pull request and merges the feature to master if it is accepted.(Rebase strategy is used) We have an automated pr checker (codacy bot) for conventions and better pull requests. User Stories and Tasks: Each task corresponds to a user story. At the scrum meetings we decide about the main tasks and user stories. After that user stories are created as issues on the github. Then assigned to backend or frontend team leaders. After that team leaders decide about the technical specific tasks and assigns them to team members. This is the main workflow that we follow. Folder Structure and Deployment: Backend and frontend teams works under their corresponding folders, which are seperated under the repository. In the main project root. We have another package.json which is the entry point for our node environment. When there is a push to master (a successfull pull request), heroku installs the dependencies recursively in both backend and frontend folders. After getting the dependencies, it builds the frontend and starts up the backend server which serves the static frontend and api routes. Branch Naming Convention: We use the following format for branch naming:

  • [task-type]/[platform]/[name or desc of the task] for example: feature/backend/auth
  • [feature|refactor|bug|test]/[backend|frontend|deployment]/[descriptive-name]

Evaluation of tools

Clone this wiki locally