Skip to content

Bahadır Gezer ‐ Milestone 1

Bahadır Gezer edited this page Nov 3, 2023 · 2 revisions

Member: Bahadır Gezer - Backend Lead

Responsibilities:

As the lead of the backend project, I was responsible for creating a reliable backend project for use by both mobile and web teams. It was critical that I designed a working backend on short notice as to not hinder the work of the other two teams. My affinity with enterprise web applications helped me in achieving this objective. An important part of my role involves deployment tasks, creating docker instances for different development purposes. I set up the backend project, nick named as "Enigma", using Spring, which is the core service. I wrote all the code that served as the template for all other code in the backend project. The backend was purposefully designed in a way that adheres to a "Backend for Frontend" design. This is due to the split in the two "front" teams. We need them to focus on design rather than the perplexities of the backend.

Main Contributions: Beware! These contributions are in chronological order.

  1. Reorganize Wiki and Add First Week Report: Created the /lab-reports folder. Reorganized the wiki and project to suit both 352 and 451. (Issue #190)

  2. Revising Requirement Specifications: Revised the requirements with an understanding of actually deploying this project. (Issue #192)

  3. Revising Class Diagrams: Revised class diagrams, and created a new page for them specifically for backend use. (Issue #195)

  4. Put lab reports under the reports folder with name lab_report_.md: Did the issue requested by Alper hoca. (Issue #197)

  5. Fix Repository Structure For The Upcoming App: Created all the folders and directory structure beforehand so that everything sailed smoothly. (Issue #199)

  6. Decided Backend Technologies: Decided on the technology stack for the backend. (Issue #202)

  7. Initialize Backend Spring Project: Easy to say, hard to achieve. Please actually check inside of the issue to see the work. (Issue #207)

  8. Create and Document DB Details: Initialize the database. Save all DB information into either the wiki or under the issue. Setup MySQLWorkbench for back-end development use. Connect the newly created DB to the backend project. (Issue #209)

  9. Add User Service and Authentication: Added the EnigmaUserService for User related work. Created the endpoint structure and Controller layer. (https://github.com/bounswe/bounswe2023group8/issues/226))

  10. Develop a Working Version of the Interest Area Model: Created a basic and working version of the Interest Areas. However this initial version will most likely be revised. (Issue #209)

  11. Configure Backend for Local Development by the Front Teams: Created docker-compose files, and documented each step inside the project structure regarding ease-of-use for the front teams. Check inside of the issue to see the work. (Issue #236)

  12. Setup GCS MySQL Server Connection for Development: Set up a Google Cloud Services Server connection, and document details for the use of this MySQL instance. (Issue #239)

  13. Add LICENSE for the App: Added a MIT license for the app. I used it in the backend README. Very crucial work. (Issue #241)

  14. Configure the Enigma Project for Different Development Workflows: The different workflows are: locally with local clean punchcard instance, locally with local full punchcard instance, remotely. (Issue #243)

  15. /auth/login: Created the login endpoint. Created the JWT generation, and validation structure. (Issue #256)

  16. /auth/register: Created the signin endpoint. Uses the EnigmaUserService to register new users. (Issue #257)

  17. /auth/logout: Created the logout endpoint. The logout functionality does not rely on the front to actually delete the JWT, as per the Backend for Frontend design. (Issue #259)

  18. Dockerize the Backend: Worked on Dockerizing the backend project for the upcoming deployment. (Issue #268)

  19. Add Unit Tests For The Auth Endpoints: Added unit tests for WA-1, WA-2, and WA-3 endpoints. Required by the PO. (Issue #304)

  20. Code Reviews For The Backend Project: Reviewed all code pushed to the backend project. Hand fixed every line of newly pushed code so that it adheres to best practices regarding Spring, and general Backend development.

Pull requests.

  1. Create Lab Report #1
  2. Fix Repository Structure
  3. Dockerize the Backend for Frontend Use
  4. GCS MySQL Work
  5. Create License
  6. Configure the Enigma Project for Different Workflows
  7. backend-master sync with the main branch
  8. Delete unnecessary directory
  9. Initialize Backend Project
  10. dev-to-main and main-to-dev merge
  11. Add JUnit Tests for Backend

Our development workflow was not very good so all of our changes are in a single PR: BACKEND just backend.

Additional information.

I have been a bit absent in management related work in this first milestone. I tried to focus on actually delivering a working project on time.

bounswe2023group8

🏠 Home

🗄️ Project
Milestones
👤 Individual Contribution Reports
Milestone 1
Milestone 2
Final Milestone
🖇️ Lab Reports
📑 Templates
👥 Team Members
CmpE 352
Old Project Files
📅 Meetings
🔬 Researches
👤 Individual Contribution Reports
Clone this wiki locally