The marketing site, customer relationship management, and apprentice management software for Red Moon
This project will serve several functions
Employers will need to be able to create an account, sign in, forgot password, all that. Integrating with an authentication provider like Auth0 is the way to accomplish this.
Once employers have created an account they'll need to subscribe to view candidates. Integrating with a payment processor like Stripe is the way to accomplish this.
Employers should be able to "Reach out" to an apprentice if they're interested in contacting them. A template email would then go to the apprentice letting them know what employer is interested in them and the employer's contact info.
Employers should be able to filter/sort apprentices based on geographic location, tech stack, and Level (apprentices at Levels 2 and 3 will be visible to employers).
Employers should be able to save details about their current needs to their profile. Ie. geographic restrictions, tech stack, etc.
Need a way to see all subscribed employers, what kind of help they're looking for, any additional requirements (like only a certain geographic area) and what apprentices they've reached out to.
Will need to be able to fill out the information on apprentices that employers will see, manage what small team they're on, tracking what Level they're on, what training they've done, etc.
As you know, contributing to the Red Moon Apprenticeship program is one way of applying to the Redmoon Apprenticeship. This is your chance to show us what your capable of. Here are some ways to contribute:
If you're looking for ideas, please consult the issues tab.
Please consult existing style sheets and designs before submitting a pull request.
Any features that look to edit any tables responsible for user authentication, or that deal with payments must have tests written for them before being merged onto the project. You can collaborate with other contributors to write tests (one person writes tests, another writes the feature, etc). In some cases, we might suggest a test for you to write.
npm install
The redmoon console uses Prisma ORM to manage its Postgresql database.
It is highly recommended that you install Prisma globally:
npm install -g prisma
First, in /prisma create a .env file, inside copy-paste the following:
DATABASE_URL="postgresql://<johndoe>:<randompassword>@localhost:5432/redmoon?schema=public"
Of course, replace johndoe and randompassword with your Postgresql username and password
In the root folder, run the following:
npx prisma db push # This will create the initial table
npx prisma generate # This will set up the Prisma client, which will allow us to do basic interactions with the database.
For hosting, we want to run migrations so that the live database stays in sync with database changes, Prisma provides the following command
npx prisma migrate dev --name <name>
Where name here is the name of the migration.
If you want to test features specific to Google and Github OAuth, refer to the below instructions, else feel free to skip this section.
Create a .env file in project root. Inside the .env file should look like this:
GOOGLE_CLIENT_ID=<YOUR KEY>
GOOGLE_CLIENT_SECRET=<YOUR KEY>
GITHUB_ID=<YOUR KEY>
GITHUB_SECRET=<YOUR KEY>
You will need a Github account and a Google API account in order to get set up, please refer to the following video for a walkthrough:
npx prisma db seed
As of right now, only seeds three users. Feel free to submit a PR seeding more users.
npm run dev
Open http://localhost:3000 with your browser to see the result.