Explore our app with this demo account!
Demo user:Email: [email protected]
Password: testingxyz
Project Merit is an easy tool where Air Force personnel can write, edit, and save performance reports from any device, and allows exporting narratives to download as a PDF for submission through official Air Force channels.
This web application requires Linux, and likewise being familiar with commandline. For Windows devices, the easiest way to run the application would be through Docker, using the GUI (desktop program).
That being said, there are a couple ways to run this application:
-
Docker Compose: The easiest way; make sure you change environment variables accordingly for the following variables. Modifying these can be found in the
Dockerfileand.envfile:ENV Variable Value DB_URI MongoDB URI link NEXTAUTH_SECRET A cipher for encrypting sessions NEXT_PUBLIC_NEXTAUTH_URL Your sites address NEXTAUTH_URL Your sites address Do note if you are running the application locally, all that needs adding is DB_URI and NEXTAUTH_SECRET, and uncommenting the URL environment variables in
.env.Once done, begin the application by running in terminal
docker-compose upat the root directory, and visit your browser at http://localhost:3000. See NextJS and NextAuth documentation for more information on the environment variables provided. -
Docker: Remember to change the requisite environnment variables as is shown in option 1, as this is a similar but different process. Start with running
docker build -t Merit .at this repositories root directory, which will create an 'image' in your docker installation; typedocker imagesto see more information, the image should have the tag "Merit". Afterwards, you can start a container from the 'image' by runningdocker run -d --rm -p 3000:3000 --restart=unless-stopped --name Merit Meritwhich will make it accessable on the same device at http://localhost:3000 -
Github Actions: This process is a little more difficult and is for cloud hosting the application, namely with Amazon which is how this application was done so during development. Fork/clone this repository and add the following variables to your repositories secrets:
ENV Variable Value AWS_ACCESS_KEY_ID AWS IAM User Access Key AWS_SECRET_ACCESS_KEY AWS IAM User Secret Key DOMAIN_CERT Your Amazon CM certificate DB_URI MongoDB URI link NEXTAUTH_SECRET A cipher for encrypting NextJS sessions validators NEXT_PUBLIC_NEXTAUTH_URL Your sites address NEXTAUTH_URL Your sites address Likewise modify the .env file to add email functionality with your own email service provider and account, then make a push to your main!
Note You can run the terraform commands explictly, though please note the terraform state backend is currently not instantiated with the code here, so make sure you create it and modify the files accordingly. If you dont want a remote backend, just comment out lines 4-5 in main.tf, and the terraform.state file will be created locally in your directory; be sure to secure it as it can have credentials in plaintext.
-
NPM: Download the application and run
npm run dev
# or
yarn dev
Open http://localhost:3000 with your local browser to see the result.
API routes can be accessed based on which endpoint you would like to change. The reports endpoint can be edited in src/app/api/reports/route.js. Likewise, the user endpoint can be edited in src/app/api/user/route.js.
Use Case Digrams
Class Diagram
Activity Diagrams
If you see an error message or run into an issue, please create bug report.
If you have an idea, or you're missing a capability that would make development easier and more robust, please Submit feature request.
If a similar feature request already exists, don't forget to leave a "+1".
Project Merit is an open-source project. We are committed to making this application a success and appreciate any contributions. Whether you are recommending new features, alerting us to bugs, or just spreading the word - we are delighted to welcome you to the Project Merit community.
Please refer to our Contribution Guidelines and Code of Conduct.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
- Daniel Cruz-Castro ([email protected])
- Amber McCullah ([email protected])
- Mari Peele ([email protected])
- Emily Tao ([email protected])





