This repository contains the client and server of the DownToMeet application, created for Computer Science 130 (Software Engineering) at UCLA during Fall 2020.
- Connie Chen
- Timothy Gu
- Linus Lam
- Jamie Liu
- Timothy Rediehs
All of our client-side code is located in the client
folder in the root directory of this repository, which contains the src
and public
sub-directories. Our application's index.html
and public assets are located in public
, whereas the source code is in src
. The README also contains additional information on how to build and run the client.
Looking in the src
folder, we used redux to manage the state of our application. The store is located in the app
folder, whereas the actions and reducers are located in stores\user
. The source code for all our React components is located in the components
directory. lib
contains implementations for the methods used to fetch data from our server. The app is defined in App.js
, and rendered in index.js
.
All of our server-side code is located in the server
folder in the root directory of this repository. This folders contains the cmd\down-to-meet
, db
, impl
, models
, and restapi
subdirectories. Additional information as well as instructions on building and running the server can be found in the README in this folder.
In the server
directory is also the swagger.yml
file. This is where we define our OpenAPI specification, including the available endpoints and input/output types for our API. The information defined in this file is used by go-swagger to auto-generate the code in the models
, restapi
, and cmd\down-to-meet
subdirectories. models
defines the data structures used by our server and API, restapi
contains server boilerplate, and cmd\down-to-meet
auto-generated source code for the server binary.
The db
subdirectory is where our database schema is defined. Endpoint implementations and their associated tests are located in the impl
folder. For each endpoint located in xxx.go
, the corresponding tests can be found in xxx_test.go
.
To build the client, run the following commands:
$ cd client
$ yarn
$ yarn start
For additional information or help, refer to the README.
To build the server, run the following commands:
$ cd server
$ make start
For additional information or help, refer to the README.
To run the tests, run the following commands, from any folder in the repository:
# Backend tests
$ go test go.timothygu.me/downtomeet/server/impl
# Frontend tests
$ yarn test
Our documentation is located in the docs
folder. The server
subdirectory contains the documentation for our server-side handlers and functions. The client
subdirectory contains the documentation for our frontend components. The file api-documentation.pdf
contains the full documentation for our REST API, as auto-generated by Swagger.