Spring 2022 Semester project for the Software Engineering course in DIT@UoA
Instructor: Kostas Saidis
This was a team project focused around creating a platform where parents may explore & reserve activities for their children. There were various goals and best practices to follow:
- Co-operating as a group
- Designing, implementing & delivering the product in a Scrum-like sprint fashion
- Familiarize with SPA and REST API design & development
- Building & Deploying the product portably & efficiently
- Sharing code across the product parts in an automated way.
All the project demands & requirements are described in detail in Software-Engineering-Project-Assignment.pdf
.
- Designing the UI appearance using Uizard wireframes
- Designing the project architecture and structure
- Developing the product
- React & Tailwind CSS in front-end applications. The Google Maps API is also used for Maps interoperability.
- SpringBoot for back-end & REST API. Postman & Thunder Client where used for quick API calls.
- PostgreSQL is the selected DBMS. The schema was created using DBeaver.
- Docker
- NPM package for shared code, with automated publishing using GitHub actions
- Main front-end application for parents (
parent-app
) - Front-end application designed for activity providers (
seller-app
) - Supportive front-end application to be used by the platform administrators (
admin-app
) - Back-end & REST API application (
back-end
) - Shared code NPM package (
common-components-lib
) - Database schema & data (
db
) - Wireframes & User stories created during the initial phase (
docs
)
Docker is required.
-
Clone the repository locally.
-
Before deploying: In order for the front-end application Maps to be functional, go to
google-project-key.env
and replaceREPLACE_KEY_HERE
with a valid Google Maps API key for this project. You may skip this if you are not concerned about Google Maps interoperability. -
Use
docker-compose up
to trigger the build & deployment process. This will create 5 containers:api-container
listening to port 8070database-container
listening to port 5432parent-app-container
listening to port 3000admin-app-container
listening to port 3001seller-app-container
listening to port 3002
-
You may then explore the front-end applications in your browser, by visiting
localhost:XXXX
(in their respective ports).
- Explore & choose between activity categories
intro.mp4
- Search activities using various filters
filters.mov
- Filter activities using home address
address.mov
- Make an activity reservation
activity.mov
- Edit profile & payment details
profile.mov
- Responsive design
responsive.mov
- Add new users & activate/deactivate existing users
users.mov
- View platform stats & Approve/Reject pending activities