The web application providing a convenient way of tracking and monitoring personal finances.
The project is developed in 4 parts (Server, Database, Client, and Salesforce organization).
- the server is the ASP .NET Core application. GraphQL is used for the API
- the Microsoft SQL server is used for the database
- the client is a React application. Uses Apollo Client for communication with the server GraphQL API
- the Salesforce organization is used for handling some clients' information, building reports and dashboards, notifying clients via emails
Instructions for running and testing out the project
In order to be able to run the project you need the following:
- Git
- Docker (with docker-compose support)
- .NET SDK (at least v3.1)
- Already configured Salesforce organization (can be omited if you don't need its functionality)
How to configure the Salesforce organization?
The project accepts some additional env variables for the running from docker. Default and general values can be found in the docker-compose file. The secrets values examples can be found in the secrets.default.env
. You should create your own secrets.env
file.
- Pull the project
git clone https://github.com/IlyaMatsuev/Apex-GraphQL-Client.git
- Go to the root
cd ./cash-scheduler-web
- Generate the HTTPS certificate and trust it
./https/generate-cert.sh
- Pull the necessary docker images
docker pull ilyamatsuev/cash-scheduler-server
docker pull ilyamatsuev/cash-scheduler-client
docker pull mcr.microsoft.com/azure-sql-edge
- Open a separate terminal in the same folder and start up the database
docker compose up cash-scheduler-db
- Open a separate terminal in the same folder and start up client and server
docker compose up cash-scheduler-server cash-scheduler-client
- Go to
https://localhost:3000/
and try
You can use the complete docker-compose file to build server and client images if you made any changes to the source code
docker compose build cash-scheduler-server cash-scheduler-client
The documentation can be found here. There are some demo recordings, a few diagrams, front- and back- end documentation.
If you have any questions regarding this project, please contact me by email provided in the GitHub profile. No issues or discussions will be maintained for this repository.