Angular v12.1.1 client for the IT_API for students of the Department of Information and Electronic Engineering of the International Hellenic University.
You can find a version of the app deployed on Firebase here: http://openapps-it.web.app/
- Current features:
- Read Categories (Public)
- Read Announcements (Public)
- Authentication:
- Login flow
- Planned features:
- User Search (Public)
- Authentication:
- Read Categories (Private)
- Read Announcements (Private)
- Category Filtering
- Announcement Pagination
- Localization
- Theme support (coloring and light/dark theme)
- Read Categories (Private)
Bleeding edge development happens on the dev branch.
- Node.js (built with LTS v12.18.1)
- Any node package manager (npm will do just fine)
- Install dependencies by running the following inside the repository:
npm install
- Update
src/environments/environment.ts
with the Base URL of the API you are using.
- Serve a dev build using:
ng serve
- You'll find the dev server running on http://localhost:4200.
- To serve a production build, first you'll have to create a copy of your environments file to a production build:
cp src/environments/environment.ts src/openapps/environments/environment.prod.ts
- Make sure to modify the
environment.prod.ts
file with any changes your production build needs. - Build the production build:
ng build --prod
Important: If you're facing issues during the build process, try creating a firebase project to ensure Authentication cloud functions work (see the "Firebase Deployment" section).
To enable authentication services, OpenApps uses Firebase by default, but you can write your own implementation as long
as it pings <openapps-base-url>/auth/finalize
, which runs server-side code on the https://login.iee.ihu.gr API for
exchanging access and refresh tokens.
If you're using Firebase, it's pretty easy to deploy OpenApps.
- Create and initialize a Firebase Project in your cloned openapps repository. Your Project must have Hosting and
Functions as selected options after
firebase init
. - Configure the Client ID & Secret:
firebase functions:config:set auth.client_id="YOUR_CLIENT_ID" firebase functions:config:set auth.client_secret="YOUR_CLIENT_SECRET"
- Create and customize a copy of
firebase.example.json
to ensure Authentication cloud functions work. - Build and deploy to Firebase:
ng deploy
This project is licensed under the terms of the MIT license.