MVP REPORT - efestrikesback/SWE-573-Software-Development-Practice GitHub Wiki
Milestone Report: Swe573 2024 Spring
Deployment links are outdated please refer to final deliverables page.
Important note the service has finally deployed, therefore API endpoints have changed to http://13.60.66.40:8080/
Links
- GitHub Link: SWE-573 Repository
- Deployment Link:Basic endpoint testing
Testing
- Register User (username email and password are mandatory)
- Login (use the registered user's email and password, then check the f12 console to see the authentication response)
- Create a community (authentication token is stored at the local storage simply create a community, community list will be added!)
User Login Info and Content
For Local PostgreSQL Access
- Db name: DEVCOM
- Username: postgres
- Password: 123
Instructions to Build the Application
-
Clone the Git repository: git clone https://github.com/efestrikesback/SWE-573-Software-Development-Practice.git
-
Download PostgreSQL and create a database named "DEVCOM": PostgreSQL
-
Change properties from application.yml if needed
-
Make sure you have OpenJDK 17: java -version
-
Build the application using Maven from Maven Goals: mvn clean install
-
Run the application (select Devcom then choose Run or): java -jar target/DEVCOM-0.0.1-SNAPSHOT.jar
-
Testing endpoints 7.1 Install Postman: Postman and use the provided(at the end of this page) collections OR 7.2 Go to (http://localhost:8080/)
-
To test what is being recorded check DEVCOM database on PostgreSQL using PgAdmin
Summary of Milestone Progress “What is Done and Status”
For MVP build I have created a simple index page that contains forms to populate JSON bodies for easier testing. Index page is HTML based, form actions trigger simple JavaScript based scripts for fetching.
MVP Requirement Progress
-
User Registration System: DONE
- User registration is fully functional. Currently, every request with a unique username and email is immediately registered to the database.
-
Login & Authorization System: DONE
- The login system is fully functional. The application checks the request, and if the username and password match what is stored in the
_userstable, the system authorizes the user and generates a JWT. /registerand/authenticaterequests do not require JWT, but for every other request, the user has to use the JWT provided by the authorization system.
- The login system is fully functional. The application checks the request, and if the username and password match what is stored in the
-
Profile System: PARTIALLY DONE
- The user can use
/api/v1/userProfile/createendpoint with the JWT given after authentication as the bearer token. It is currently possible to create and populate bio and avatar fields. Updating will be added for the final project.
- The user can use
-
Community Creation & Membership: DONE
- It is currently possible to create and join communities. Archiving community and leaving a community will be added for the final version.
-
DEPLOYMENT: DONE Backend service is functional at Amazon Ec2 instance once opened please use Postman to test!
TEST RESULTS EXPORTED FROM POSTGRESQL
membership.csv token.csv user_profile.csv _user.csv community.csv
POSTMAN COLLECTION FOR LOCAL TESTING ENVIRONMENT (Not applicable anymore, URLs have been changed to http://13.60.66.40:8080/)
MVP Collection.postman_collection.json
POSTMAN COLLECTION FOR DEPLOYMENT TESTING (Not applicable anymore, URLs have been changed to http://13.60.66.40:8080/)
MVP Collection Deployment.postman_collection.json
TODO
- Role management within communities
- Dynamic role assignment
- Containerize and deploy the application and PostgreSQL database
- Deployment on Amazon EC2
Infrastructure
- Backend: Spring Boot Java
- Database: PostgreSQL will be containerized for deployment.
- Frontend (if applicable): Basic HTML/CSS/JS for demonstration purposes will be changed to a modern framework.
- CI/CD: GitHub
- Deployment: Docker, Docker Compose on (Currently Render)Amazon EC2.